TsgcWSPClient_sgcメソッド › Subscribe

Subscribe メソッド

クライアントをカスタムチャンネルにサブスクライブします。

構文

procedure Subscribe(const aChannel: String; const aGuid: String = '');

パラメータ

名前タイプ説明
aChannelconst Stringサブスクライブするチャネルの名前。
aGuidconst Stringターゲットのサーバー側 sgc プロトコルインスタンスのオプション GUID。デフォルトを使用するには空のままにしてください。

解説

指定されたチャンネルへの購読リクエストを送信します。サーバーが購読を確認すると、OnSubscriptionイベントが発火します。購読後、チャンネルにパブリッシュされたメッセージはOnEventを通じて配信されます。

aChannel はサーバーによって完全一致文字列として照合されます。topic1/#topic1/+ のような MQTT スタイルのワイルドカードは解釈されず、チャンネル名の一部としてそのまま文字として扱われます。そのため、topic1/# をサブスクライブしたクライアントは、topic1/sensorA にパブリッシュされたメッセージを受信しません。

1回の呼び出しで複数のチャンネルをサブスクライブするには、カンマで区切ります。

oProtocol.Subscribe('topic1/a,topic1/b,topic1/c');

カンマはリストの区切り文字であるため、チャンネル名の一部として使用することはできません。同じカンマ区切りの構文は、UnSubscribe、および BroadcastPublish のチャンネル引数、exclude 引数、include 引数にも適用されます。

サーバー側では、完全一致の代わりにマスクマッチング(*?、MQTT 構文ではありません)を使用してチャンネル引数を展開するように任意で設定できます。TsgcWSPServer_sgc.UseMatchesMask を参照してください。#+ のセマンティクスを持つ本来の MQTT トピックフィルターが必要な場合は、代わりに TsgcWSPClient_MQTT を使用してください。

使用例

oProtocol.Subscribe('news');

// multiple channels in one call
oProtocol.Subscribe('topic1/a,topic1/b,topic1/c');

メソッドに戻る