TsgcWSPClient_MQTTÉvénements › OnMQTTAuth

OnMQTTAuth Événement

Se déclenche pendant l'échange d'authentification améliorée MQTT 5 lorsque le broker envoie un paquet AUTH.

Syntaxe

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

Valeur par défaut

Remarques

Gestionnaire du paquet AUTH MQTT 5 utilisé lors de l'échange d'authentification amélioré (défi/réponse). Un flux typique est : le client envoie CONNECT avec AuthenticationMethod et AuthenticationData, le broker répond avec AUTH (ReasonCode = Continue authentication) portant son défi, le client répond avec un autre AUTH, et le broker envoie finalement CONNACK. Le gestionnaire reçoit Connection, le ReasonCode du broker (entier) et le ReasonName lisible par l'humain, ainsi que AuthProperties qui expose AuthenticationMethod, AuthenticationData, ReasonString et UserProperties. Utilisez cet événement pour lire le défi du broker, puis appelez la méthode Auth pour envoyer la prochaine étape de l'échange. Disponible uniquement lorsque MQTTVersion est 5.0.

Exemple

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;

Retour aux événements