TsgcWSPClient_MQTTZdarzenia › OnMQTTAuth

OnMQTTAuth Zdarzenie

Wywoływane podczas rozszerzonej wymiany uwierzytelniania MQTT 5, gdy broker wysyła pakiet AUTH.

Składnia

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

Wartość domyślna

Uwagi

Handler dla pakietu AUTH protokołu MQTT 5 używanego podczas rozszerzonej wymiany uwierzytelniania (wyzwanie/odpowiedź). Typowy przepływ wygląda następująco: klient wysyła CONNECT z AuthenticationMethod i AuthenticationData, broker odpowiada AUTH (ReasonCode = Continue authentication) z wyzwaniem, klient odpowiada kolejnym AUTH, a broker ostatecznie wysyła CONNACK. Handler otrzymuje Connection, kod przyczyny brokera ReasonCode (integer) i czytelną dla człowieka ReasonName, a także AuthProperties udostępniające AuthenticationMethod, AuthenticationData, ReasonString i UserProperties. Należy użyć tego zdarzenia, aby odczytać wyzwanie brokera, a następnie wywołać metodę Auth, aby opublikować następny krok wymiany. Dostępne wyłącznie, gdy MQTTVersion wynosi 5.0.

Przykład

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;

Powrót do Zdarzeń