TsgcWSPClient_MQTT | Połączenie klienta MQTT

Aby połączyć się z serwerem MQTT, należy najpierw utworzyć komponent TsgcWebSocketClient oraz TsgcWSPClient_MQTT, a następnie podłączyć komponent MQTT do klienta WebSocket.

 

Podstawowe użycie

Połącz z serwerem MQTT Mosquitto przy użyciu protokołu WebSocket. Po nawiązaniu połączenia zasubskrybuj temat: „topic1".

 


oClient := TsgcWebSocketClient.Create(nil);
oClient.Host := 'test.mosquitto.org';
oClient.Port := 8080;
oMQTT := TsgcWSPClient_MQTT.Create(nil);
oMQTT.Client := oClient;
oClient.Active := True;
 
procedure OnMQTTConnect(Connection: TsgcWSConnection; const Session: Boolean; const ReasonCode: Integer; 
  const ReasonName: string; const ConnectProperties: TsgcWSMQTTCONNACKProperties);
begin
  oMQTT.Subscribe('topic1');
end;

 

Identyfikator klienta

MQTT wymaga identyfikatora klienta do identyfikacji połączenia klienta. Składnik automatycznie ustawia losową wartość, jednak w razie potrzeby można podać własny identyfikator klienta. W tym celu należy obsłużyć zdarzenie OnBeforeConnect i ustawić własną wartość w parametrze aClientIdentifier.

 


procedure OnMQTTBeforeConnect(Connection: TsgcWSConnection; var aCleanSession: Boolean; 
  var aClientIdentifier: string);
begin
  aClientIdentifier := 'your client id';
end;

Uwierzytelnianie

Niektóre serwery wymagają nazwy użytkownika i hasła do autoryzacji połączeń MQTT. Należy użyć właściwości Authentication, aby ustawić wartość nazwy użytkownika i hasła przed połączeniem z serwerem.

 


oMQTT := TsgcWSPClient_MQTT.Create(nil);
oMQTT.Authentication.Enabled := True;
oMQTT.Authentication.UserName := 'your user';
oMQTT.Authentication.Password := 'your password';