TsgcWSPClient_MQTT | MQTT パブリッシュサブスクライブ

パブリッシュ/サブスクライブパターン(pub/sub とも呼ばれる)は、従来のクライアント/サーバーアーキテクチャの代替手段を提供します。クライアント/サーバーモデルでは、クライアントはエンドポイントと直接通信します。pub/sub モデルはメッセージを送信するクライアント(パブリッシャー)とメッセージを受信するクライアントまたは複数のクライアント(サブスクライバー)を切り離します。パブリッシャーとサブスクライバーは互いに直接連絡することはありません。実際、互いの存在すら知りません。それらの間の接続は第三のコンポーネント(ブローカー)によって処理されます。ブローカーの役割は、受信したすべてのメッセージをフィルタリングし、サブスクライバーに正しく配信することです。

 

TsgcWSPClient_MQTTを使用してメッセージをパブリッシュしたりトピックにサブスクライブしたりできます。

 

トピックの購読

接続が成功した後、トピック「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.Subscribe('topic1');
end;

メッセージのパブリッシュ

「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;