TsgcWSPClient_MQTTEventos › OnMQTTAuth

OnMQTTAuth Evento

Se activa durante el intercambio de autenticación mejorada de MQTT 5 cuando el broker envía un paquete AUTH.

Sintaxis

property OnMQTTAuth: TsgcWSMQTTAuthEvent;
// TsgcWSMQTTAuthEvent = procedure(Connection: TsgcWSConnection; ReasonCode: Integer; const ReasonName: String; AuthProperties: TsgcWSMQTTAUTHProperties) of object

Valor Predeterminado

Observaciones

Manejador para el paquete AUTH de MQTT 5 utilizado durante el intercambio de autenticación mejorada (desafío/respuesta). Un flujo típico es: el cliente envía CONNECT con AuthenticationMethod y AuthenticationData, el broker responde con AUTH (ReasonCode = Continue authentication) con su desafío, el cliente responde con otro AUTH, y el broker finalmente envía CONNACK. El manejador recibe Connection, el ReasonCode del broker (entero) y el ReasonName legible por humanos, además de AuthProperties que expone AuthenticationMethod, AuthenticationData, ReasonString y UserProperties. Use este evento para leer el desafío del broker y luego llame al método Auth para publicar el siguiente paso del intercambio. Disponible únicamente cuando MQTTVersion es 5.0.

Ejemplo

procedure TForm1.MQTTAuth(Connection: TsgcWSConnection;
  ReasonCode: Integer; const ReasonName: String;
  AuthProperties: TsgcWSMQTTAUTHProperties);
var
  vMethod, vData: String;
begin
  vMethod := AuthProperties.AuthenticationMethod;
  vData   := AuthProperties.AuthenticationData;
  Memo1.Lines.Add(Format('AUTH %d (%s) method=%s',
    [ReasonCode, ReasonName, vMethod]));

  // continue the exchange with the next client step
  if ReasonCode = 24 then // Continue authentication
    MQTT.Auth(False, vMethod, ComputeClientResponse(vData));
end;

Volver a Eventos