TsgcWSPClient_MQTTGebeurtenissen › OnMQTTAuth

OnMQTTAuth Gebeurtenis

Wordt geactiveerd tijdens de MQTT 5 uitgebreide authenticatie-uitwisseling wanneer de broker een AUTH-pakket verzendt.

Syntaxis

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

Standaardwaarde

Opmerkingen

Handler voor het MQTT 5 AUTH-pakket dat wordt gebruikt tijdens de uitgebreide (challenge/response) authenticatie-uitwisseling. Een typische flow is: de client verzendt CONNECT met AuthenticationMethod en AuthenticationData, de broker antwoordt met AUTH (ReasonCode = Continue authentication) die zijn challenge bevat, de client antwoordt met een nieuwe AUTH, en de broker verzendt ten slotte CONNACK. De handler ontvangt Connection, de ReasonCode van de broker (integer) en de leesbare ReasonName, plus AuthProperties die AuthenticationMethod, AuthenticationData, ReasonString en UserProperties blootstelt. Gebruik deze gebeurtenis om de challenge van de broker te lezen en roep vervolgens de methode Auth aan om de volgende stap van de uitwisseling te verzenden. Alleen beschikbaar wanneer MQTTVersion 5.0 is.

Voorbeeld

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;

Terug naar Events