TsgcWSPClient_MQTTメソッド › Subscribe

Subscribe メソッド

リクエストされたQoSで1つ以上のトピックフィルターにクライアントをサブスクライブします。

オーバーロード

オーバーロード 1

構文

function Subscribe(const aTopic: String; aQoS: TmqttQoS = mtqsAtMostOnce; const aSubscribeProperties: TsgcWSMQTTSubscribe_Properties = nil) : Word;

パラメータ

名前タイプ説明
aTopicconst String購読するトピックフィルター。シングルレベル(+)およびマルチレベル(#)ワイルドカードがサポートされています。
aQoSTmqttQoSブローカーが一致するメッセージに配信する最大 QoS。デフォルトは mtqsAtMostOnce。
aSubscribePropertiesconst TsgcWSMQTTSubscribe_Propertiesサブスクリプション識別子、No Local フラグ、Retain As Published、Retain Handling などのオプションの MQTT 5.0 プロパティ。デフォルトを使用する場合は nil を渡します。

戻り値

SUBSCRIBE パケットのパケット識別子。OnMQTTSubscribe を通じて報告された許可と照合することで、ブローカーが実際に割り当てた QoS を確認できます。(Word)

解説

単一トピックのオーバーロード、最も一般的な形式。受信メッセージは OnMQTTPublish(または MQTT 5.0 では OnMQTTPublishEx)を通じて公開されます。ブローカーは ACL ルールが適用される場合や要求されたレベルをサポートしていない場合に QoS をダウングレードすることがあります。

使用例

MQTT.Subscribe('sensors/+/temperature', mtqsAtLeastOnce);

オーバーロード 2

構文

function Subscribe(aTopics: TsgcWSTopics): Word;

パラメータ

名前タイプ説明
aTopicsTsgcWSTopics個別の QoS 設定を持つトピックフィルターのコレクション。単一の SUBSCRIBE パケットとして送信されます。

戻り値

バッチ処理された SUBSCRIBE パケットのパケット識別子。OnMQTTSubscribe を通じて受信したすべての付与を関連付けるために使用されます。(Word

解説

1 回のラウンドトリップで複数のフィルターをサブスクライブするバッチオーバーロード。ネットワーク通信を削減し、ブローカーが単一の SUBACK で全理由コードリストを返す機会を与えるため、単一トピック呼び出しのループよりも優先してください。

使用例

oTopics := TsgcWSTopics.Create;
try
  oTopics.Add('sensors/#', mtqsAtLeastOnce);
  oTopics.Add('alerts/#', mtqsExactlyOnce);
  MQTT.Subscribe(oTopics);
finally
  oTopics.Free;
end;

メソッドに戻る