TsgcWSPClient_MQTT › メソッド › Subscribe
リクエストされたQoSで1つ以上のトピックフィルターにクライアントをサブスクライブします。
function Subscribe(const aTopic: String; aQoS: TmqttQoS = mtqsAtMostOnce; const aSubscribeProperties: TsgcWSMQTTSubscribe_Properties = nil) : Word;
| 名前 | タイプ | 説明 |
|---|---|---|
aTopic | const String | 購読するトピックフィルター。シングルレベル(+)およびマルチレベル(#)ワイルドカードがサポートされています。 |
aQoS | TmqttQoS | ブローカーが一致するメッセージに配信する最大 QoS。デフォルトは mtqsAtMostOnce。 |
aSubscribeProperties | const 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);
function Subscribe(aTopics: TsgcWSTopics): Word;
| 名前 | タイプ | 説明 |
|---|---|---|
aTopics | TsgcWSTopics | 個別の 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;