TsgcWSPClient_MQTTEreignisse › OnMQTTAuth

OnMQTTAuth Ereignis

Wird während des MQTT-5-Enhanced-Authentication-Austauschs ausgelöst, wenn der Broker ein AUTH-Paket sendet.

Syntax

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

Standardwert

Hinweise

Handler für das MQTT-5-AUTH-Paket, das während des erweiterten (Challenge/Response) Authentifizierungsaustauschs verwendet wird. Ein typischer Ablauf ist: Der Client sendet CONNECT mit AuthenticationMethod und AuthenticationData, der Broker antwortet mit AUTH (ReasonCode = Continue authentication) und trägt seine Challenge, der Client antwortet mit einem weiteren AUTH, und der Broker sendet schließlich CONNACK. Der Handler empfängt Connection, den Broker-ReasonCode (Integer) und den menschenlesbaren ReasonName, sowie AuthProperties, das AuthenticationMethod, AuthenticationData, ReasonString und UserProperties bereitstellt. Verwenden Sie dieses Ereignis, um die Broker-Challenge zu lesen, und rufen Sie dann die Methode Auth auf, um den nächsten Schritt des Austauschs zu senden. Nur verfügbar, wenn MQTTVersion 5.0 ist.

Beispiel

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;

Zurück zu Ereignissen