TsgcWSPClient_MQTTOlaylar › OnMQTTAuth

OnMQTTAuth Olay

Broker bir AUTH paketi gönderdiğinde, MQTT 5 gelişmiş kimlik doğrulama alışverişi sırasında tetiklenir.

Sözdizimi

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

Varsayılan Değer

Remarks

Gelişmiş (challenge / response) kimlik doğrulama alışverişi sırasında kullanılan MQTT 5 AUTH paketi için işleyici. Tipik bir akış şöyledir: İstemci, AuthenticationMethod ve AuthenticationData ile CONNECT gönderir, broker challenge'ını taşıyan AUTH (ReasonCode = Continue authentication) ile yanıt verir, istemci başka bir AUTH ile yanıt verir ve broker sonunda CONNACK gönderir. İşleyici, Connection, broker ReasonCode (tamsayı) ve insan tarafından okunabilir ReasonName'i ve ayrıca AuthenticationMethod, AuthenticationData, ReasonString ve UserProperties öğelerini sunan AuthProperties'i alır. Broker challenge'ını okumak ve ardından alışverişin bir sonraki adımını göndermek için Auth yöntemini çağırmak için bu olayı kullanın. Yalnızca MQTTVersion 5.0 olduğunda kullanılabilir.

Örnek

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;

Olaylara Dön