TsgcWSPClient_MQTT | Publikowanie i subskrypcja MQTT

Wzorzec publikowania/subskrybowania (znany również jako pub/sub) stanowi alternatywę dla tradycyjnej architektury klient-serwer. W modelu klient-serwer klient komunikuje się bezpośrednio z punktem końcowym. Model pub/sub oddziela klienta wysyłającego wiadomość (wydawcę) od klienta lub klientów odbierających wiadomości (subskrybentów). Wydawcy i subskrybenci nigdy nie kontaktują się bezpośrednio. W rzeczywistości nie są nawet świadomi nawzajem swojego istnienia. Połączenie między nimi jest obsługiwane przez komponent trzeci (broker). Zadaniem brokera jest filtrowanie wszystkich przychodzących wiadomości i poprawne ich dystrybuowanie do subskrybentów.

 

Przy użyciu TsgcWSPClient_MQTT można publikować wiadomości i subskrybować tematy.

 

Subskrybuj temat

Subskrybuj temat "topic1" po pomyślnym nawiązaniu połączenia.


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;

Publikuj wiadomość

Opublikuj wiadomość do wszystkich subskrybentów kanału "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;