TsgcWebSocketProxyServer › メソッド › WriteData
接続GUIDで識別されるプロキシ上の単一のWebSocketクライアントにメッセージを送信します。
function WriteData(const aGuid, aMessage: string): Boolean;
| 名前 | タイプ | 説明 |
|---|---|---|
aGuid | const string | クライアントのハンドシェイクが完了したときにプロキシによって割り当てられたターゲット接続の識別子。 |
aMessage | const string | そのクライアントに WebSocket テキストフレームとして配信するテキストペイロード。 |
指定された GUID を持つ接続が見つかりフレームがそのソケットに渡された場合は True、一致するアクティブな接続が存在しない場合は False。(Boolean)
このオーバーロードは、GUIDがaGuidと一致するWebSocket接続を検索し、トンネルのブラウザー側にあるその単一クライアントにテキストメッセージを送信します。GUIDはTsgcWSConnection.Guidによって公開される値で、通常はOnConnectでキャプチャされ、アプリケーションによって保存されます。この呼び出しでは、ペアになっている上流のTCPリンクには書き込みません。バックエンドのTCPサーバーを経由してバイトをルーティングせずに、プロキシからブラウザークライアントにデータをプッシュするために使用してください。1回の呼び出しですべてのアクティブなWebSocketクライアントに到達するには、Broadcastを使用してください。
oServer.WriteData('guid', 'My First sgcWebSockets Message!.');
function WriteData(const aGuid: String; aStream: TStream; aSize: Integer = 0; const aStreaming: TwsStreaming = stmNone) : Boolean;
| 名前 | タイプ | 説明 |
|---|---|---|
aGuid | const String | クライアントのハンドシェイクが完了したときにプロキシによって割り当てられたターゲット接続の識別子。 |
aStream | TStream | クライアントへの WebSocket バイナリフレームとして送信されるコンテンツを含むソースストリーム。呼び出し元がストリームの所有者のままです。 |
aSize | Integer | オプションのフラグメントサイズ (バイト単位)。ゼロより大きい場合、ストリームはこのサイズの複数のフラグメントに分割されます。ストリーム全体を単一のフレームとして送信するにはデフォルトの 0 を使用してください。 |
aStreaming | const TwsStreaming | フラグメント化された送信のストリーミングモード(stmNone、stmStart、stmContinue、stmFinish)。デフォルトは stmNone で、完全なスタンドアロンメッセージを送信します。 |
指定された GUID を持つ接続が見つかり、ストリームがそのソケットに渡された場合は True。一致するアクティブな接続が存在しない場合は False。(Boolean)
このオーバーロードは、提供されたストリームから読み込まれたバイナリペイロードを使用して、プロキシのブラウザ向けサイドの単一のWebSocketクライアントを対象とします。ストリームは現在の位置から消費され、サーバーは所有権を取得しないため、WriteData が返るまで呼び出し元はストリームを有効に保つ必要があります。このGUIDに関連付けられたアップストリームTCP接続にはここでは書き込まれません。バイトはWebSocketピアにのみ配信されます。複数のWebSocketフレームにまたがって非常に大きなペイロードをフラグメント化して送信する場合は、aSize と aStreaming を組み合わせて使用します。
oStream := TMemoryStream.Create;
try
oStream.LoadFromFile('payload.bin');
oServer.WriteData('guid', oStream);
finally
oStream.Free;
end;