Para se conectar a um MQTT Server, você deve primeiro criar um TsgcWebSocketClient e um TsgcWSPClient_MQTT. Em seguida, você deve anexar o componente MQTT ao WebSocket Client.
Conecta ao servidor MQTT Mosquitto usando o protocolo websocket. Assina o tópico: "topic1" após 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;
O MQTT requer um Client Identifier para identificar a conexão do cliente. O componente define um valor aleatório automaticamente, mas você pode definir seu próprio Client Identifier se necessário; para isso, basta tratar o evento OnBeforeConnect e definir seu valor no parâmetro aClientIdentifier.
procedure OnMQTTBeforeConnect(Connection: TsgcWSConnection; var aCleanSession: Boolean;
var aClientIdentifier: string);
begin
aClientIdentifier := 'your client id';
end;
Alguns servidores requerem um usuário e senha para autorizar conexões MQTT. Use a propriedade Authentication para definir o valor de nome de usuário e senha antes de conectar ao servidor.
oMQTT := TsgcWSPClient_MQTT.Create(nil);
oMQTT.Authentication.Enabled := True;
oMQTT.Authentication.UserName := 'your user';
oMQTT.Authentication.Password := 'your password';