Para conectarse a un servidor MQTT, primero debe crear un TsgcWebSocketClient y un TsgcWSPClient_MQTT. A continuación, debe asociar el componente MQTT al cliente WebSocket.
Conectar al servidor MQTT Mosquitto usando el protocolo websocket. Suscribirse al topic: «topic1» después de conectar.
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;
MQTT requiere un identificador de cliente para identificar la conexión del cliente. El componente establece un valor aleatorio automáticamente, pero puede definir su propio identificador de cliente si es necesario; para ello, simplemente gestione el evento OnBeforeConnect y establezca su valor en el parámetro aClientIdentifier.
procedure OnMQTTBeforeConnect(Connection: TsgcWSConnection; var aCleanSession: Boolean;
var aClientIdentifier: string);
begin
aClientIdentifier := 'your client id';
end;
Algunos servidores requieren usuario y contraseña para autorizar conexiones MQTT. Utilice la propiedad Authentication para establecer el valor de nombre de usuario y contraseña antes de conectarse al servidor.
oMQTT := TsgcWSPClient_MQTT.Create(nil);
oMQTT.Authentication.Enabled := True;
oMQTT.Authentication.UserName := 'your user';
oMQTT.Authentication.Password := 'your password';