TsgcWebSocketClientメソッド › WriteData

WriteData メソッド

WebSocket サーバーにテキストメッセージを送信します。オプションで指定したサイズのフラグメントに分割できます。

オーバーロード

オーバーロード 1

構文

procedure WriteData(const aText: String; const aSize: Integer = 0; const aStreaming: TwsStreaming = stmNone);

パラメータ

名前タイプ説明
aTextconst StringWebSocketテキストフレームとしてサーバーへ送信するテキストペイロードです。
aSizeconst Integerオプションのフラグメントサイズ(バイト単位)。ゼロより大きい場合、メッセージはこのサイズの複数のフラグメントに分割されます。メッセージ全体を単一フレームとして送信するにはデフォルトの 0 を使用してください。
aStreamingconst TwsStreamingフラグメント化された送信のストリーミングモード(stmNonestmStartstmContinuestmFinish)。デフォルトは stmNone で、完全なスタンドアロンメッセージを送信します。

解説

WriteData は、アクティブな接続上で文字列を WebSocket テキスト フレームとして送信します。デフォルトでは呼び出しは呼び出し元スレッドで実行され、バイトがソケットに渡されると返ります。QueueOptions.Text が qmNone 以外の値に設定されている場合、メッセージはキューに入れられ、接続固有のスレッドから実際に送信されます。これにより、複数スレッドが同時に書き込む場合のロックを防ぎます。クライアントが接続されていない場合、この呼び出しは何も行いません。ソケット例外は OnError に転送されます。大きなペイロードやバイナリ データを送信する場合はストリーム オーバーロードを使用してください。

使用例


oClient.WriteData('My First sgcWebSockets Message!.');

オーバーロード 2

構文

procedure WriteData(const aStream: TStream; const aSize: Integer = 0; const aStreaming: TwsStreaming = stmNone);

パラメータ

名前タイプ説明
aStreamconst TStream内容が WebSocket バイナリフレームとして送信されるソースストリーム。呼び出し元はストリームのオーナーのままです。
aSizeconst Integerオプションのフラグメントサイズ (バイト単位)。ゼロより大きい場合、ストリームはこのサイズの複数のフラグメントに分割されます。ストリーム全体を単一のフレームとして送信するにはデフォルトの 0 を使用してください。
aStreamingconst TwsStreamingフラグメント化された送信のストリーミングモード(stmNonestmStartstmContinuestmFinish)。デフォルトは stmNone で、完全なスタンドアロンメッセージを送信します。

解説

WriteData は供給されたストリームを現在位置から読み取り、内容を WebSocket バイナリフレームとして送信します。呼び出しはデフォルトで呼び出し元スレッド上で実行されます。QueueOptions.Binary が qmNone 以外の値に設定されている場合、メッセージはキューに入れられ、実際には接続スレッドからディスパッチされます。クライアントが接続されていない場合、このメソッドは何も行いません。ソケット例外はキャプチャされ、OnError に転送されます。ストリームは呼び出しが返った後(またはキューイング時は送信完了後)にのみ解放してください。

使用例


oStream := TMemoryStream.Create;
try
  oStream.LoadFromFile('payload.bin');
  oClient.WriteData(oStream);
finally
  oStream.Free;
end;

メソッドに戻る