Le modèle publication/abonnement (également connu sous le nom pub/sub) constitue une alternative à l'architecture client-serveur traditionnelle. Dans le modèle client-serveur, un client communique directement avec un point de terminaison. Le modèle pub/sub dissocie le client qui envoie un message (l'éditeur) des clients qui reçoivent les messages (les abonnés). Les éditeurs et les abonnés ne se contactent jamais directement. En fait, ils ne sont même pas conscients de l'existence de l'autre. La connexion entre eux est gérée par un troisième composant (le courtier). Le rôle du courtier est de filtrer tous les messages entrants et de les distribuer correctement aux abonnés.
Avec TsgcWSPClient_MQTT vous pouvez publier des messages et vous abonner à des topics.
S'abonner à la rubrique « topic1 » après une connexion réussie.
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;
Publier un message à tous les abonnés 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;