TsgcWSPServer_sgc › メソッド › Broadcast
テキストまたはストリームのペイロードを、接続されているすべてのクライアントにブロードキャストします。オプションでチャンネルによるフィルタリングが可能です。
procedure Broadcast(aMessage: string; aChannel: string = ''; Exclude: String = ''; Include: String = '');
| 名前 | タイプ | 説明 |
|---|---|---|
aMessage | string | sgc エンベロープにラップされたテキストペイロード。OnMessage を通じて受信者に配信されます。 |
aChannel | string | オプションのチャンネル フィルター。指定した場合、そのチャンネルにサブスクライブしているクライアントのみがペイロードを受信します。空のままにするとすべての接続に届きます。 |
Exclude | String | ブロードキャストを受信してはならない接続 GUID のセミコロン区切りリスト。 |
Include | String | ブロードキャストが制限される接続 GUID のセミコロン区切りリスト。チャンネルフィルターを上書きします。 |
テキストオーバーロードです。method=messageエンベロープを選択した受信者へ送信します。QoSがレベル1またはレベル2の場合、サーバーはメッセージを保留リストに保存し、接続ごとの確認応答を待ち、必要に応じて再送します。QoSレベル0の場合、メッセージは追跡なしで1回だけ送信されます。
oProtocol.Broadcast('hello everyone');
oProtocol.Broadcast('channel update', 'news');
procedure Broadcast(aStream: TStream; aChannel: string = ''; Exclude: String = ''; Include: String = ''; aSize: Integer = 0; aStreaming: TwsStreaming = stmNone);
| 名前 | タイプ | 説明 |
|---|---|---|
aStream | TStream | WebSocket 上でそのまま送信されるバイナリペイロード。受信者は OnBinary を通じて受け取ります。 |
aChannel | string | オプションのチャンネルフィルター。指定された場合、そのチャンネルをサブスクライブしているクライアントのみがフレームを受信します。 |
Exclude | String | フレームを受信してはならない接続 GUID のセミコロン区切りリスト。 |
Include | String | フレームが限定される接続 Guid のセミコロン区切りリスト。 |
aSize | Integer | ペイロードがフラグメント化される場合のバイト単位のチャンクサイズ。ストリームを単一フレームとして送信する場合は 0 を渡します。 |
aStreaming | TwsStreaming | ストリームをフレームに分割するために使用するストリーミング戦略(stmNone、stmFragmented、stmCustom)です。 |
バイナリオーバーロード。ストリームを sgc JSON エンベロープでラップせずに選択された受信者に直接ディスパッチするため、クライアントは生のバイナリフレームを受け取ります。テキストオーバーロードとは異なり、このパスは QoS 保留リストを使用しません。配信は基盤となる WebSocket トランスポートのベストエフォートです。
oStream := TFileStream.Create('image.png', fmOpenRead);
try
oProtocol.Broadcast(oStream, 'news');
finally
oStream.Free;
end;