El patrón publicar/suscribir (también conocido como pub/sub) ofrece una alternativa a la arquitectura cliente-servidor tradicional. En el modelo cliente-servidor, un cliente se comunica directamente con un endpoint. El modelo pub/sub desacopla al cliente que envía un mensaje (el publicador) del cliente o clientes que reciben los mensajes (los suscriptores). Los publicadores y los suscriptores nunca se comunican directamente entre sí. De hecho, ni siquiera son conscientes de la existencia del otro. La conexión entre ellos es gestionada por un tercer componente (el broker). La función del broker es filtrar todos los mensajes entrantes y distribuirlos correctamente a los suscriptores.
Con TsgcWSPClient_MQTT puede publicar mensajes y suscribirse a temas.
Suscríbase al tema "topic1" después de una conexión exitosa.
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;
Publicar un mensaje a todos los suscriptores 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;