TsgcWSPClient_MQTTEventi › OnMQTTAuth

OnMQTTAuth Evento

Si attiva durante lo scambio di autenticazione avanzata MQTT 5 quando il broker invia un pacchetto AUTH.

Sintassi

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

Valore predefinito

Note

Gestore del pacchetto AUTH di MQTT 5 utilizzato durante lo scambio di autenticazione avanzata (challenge/response). Un flusso tipico è: il client invia CONNECT con AuthenticationMethod e AuthenticationData, il broker risponde con AUTH (ReasonCode = Continue authentication) contenente la propria challenge, il client risponde con un altro AUTH e infine il broker invia CONNACK. Il gestore riceve Connection, il ReasonCode del broker (intero) e il ReasonName leggibile dall'uomo, oltre ad AuthProperties che espone AuthenticationMethod, AuthenticationData, ReasonString e UserProperties. Utilizzare questo evento per leggere la challenge del broker e poi chiamare il metodo Auth per inviare il passo successivo dello scambio. Disponibile solo quando MQTTVersion è 5.0.

Esempio

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;

Torna agli Eventi