TsgcWSPClient_MQTTEventos › OnMQTTAuth

OnMQTTAuth Event

Disparado durante a troca de autenticação aprimorada do MQTT 5 quando o broker envia um pacote AUTH.

Sintaxe

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

Valor Padrão

Observações

Handler para o pacote AUTH do MQTT 5 utilizado durante a troca de autenticação aprimorada (challenge / response). Um fluxo típico é: o cliente envia CONNECT com AuthenticationMethod e AuthenticationData, o broker responde com AUTH (ReasonCode = Continue authentication) carregando seu challenge, o cliente responde com outro AUTH, e o broker finalmente envia CONNACK. O handler recebe Connection, o ReasonCode do broker (integer) e o ReasonName legível, além de AuthProperties que expõe AuthenticationMethod, AuthenticationData, ReasonString e UserProperties. Utilize este evento para ler o challenge do broker e então chamar o método Auth para postar a próxima etapa da troca. Disponível apenas quando MQTTVersion é 5.0.

Exemplo

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;

Voltar para Eventos