O padrão publish/subscribe (também conhecido como pub/sub) oferece uma alternativa à arquitetura cliente-servidor tradicional. No modelo cliente-servidor, um cliente comunica-se diretamente com um endpoint. O modelo pub/sub desacopla o cliente que envia uma mensagem (o publicador) do cliente ou clientes que recebem as mensagens (os assinantes). Os publicadores e assinantes nunca entram em contato diretamente. Na verdade, eles nem sequer sabem que o outro existe. A conexão entre eles é tratada por um terceiro componente (o broker). O trabalho do broker é filtrar todas as mensagens recebidas e distribuí-las corretamente aos assinantes.
Com o TsgcWSPClient_MQTT você pode Publicar mensagens e Assinar Tópicos.
Assine o Tópico "topic1" após uma conexão bem-sucedida.
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;
Publica uma mensagem para todos os assinantes de "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.Publish('topic1', 'Hello Subscribers topic1');
end;