TsgcWSPClient_WAMPメソッド › WriteData

WriteData メソッド

構築済みのテキストまたはバイナリ WAMP フレームを基盤の WebSocket トランスポートを通じて直接送信します。

オーバーロード

オーバーロード 1

構文

procedure WriteData(const aText: String);

パラメータ

名前タイプ説明
aTextconst String送信する WAMP JSON テキストフレーム(例:CALL の場合は [2,"id","proc"])。WebSocket テキストフレームとしてそのまま送信されます。

解説

高レベル API(CallSubscribePublish など)が公開していない実験的またはサーバー固有の WAMP メッセージを発行するための低レベルエスケープハッチ。テキストはそのまま書き込まれるため、呼び出し元は適切な WAMP 配列ペイロードを生成する責任があります。誤用するとセッションの同期が取れなくなったり、サーバーがクライアントを切断する可能性があります。

使用例


// send a hand-crafted WAMP PREFIX frame
WAMP.WriteData('[1,"calc","http://example.com/simple/calc#"]');

オーバーロード 2

構文

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

パラメータ

名前タイプ説明
aStreamTStreamバイトが WebSocket バイナリフレームとして送信されるソースストリーム。現在位置が考慮されてストリームが前方に読み取られます。
aSizeInteger現在の位置から送信するバイト数。現在の位置からストリームの終端まで送信するには 0 を渡してください。
aStreamingconst TwsStreamingフラグメンテーションモード:stmNone はペイロードを単一フレームとして送信します。stmStartstmContinuestmEnd は、ペイロードをチャンクに分割する際に WebSocket 継続フレームを発行します。

解説

テキストオーバーロードのバイナリ版です。WAMP v1 は JSON-over-text プロトコルであるため、この形式は標準的な RPC/PubSub トラフィックではなく、コンパニオンペイロード(例えば手作りの ping フレーム、帯域外ファイル転送、または実験的拡張)を対象としています。すべての WAMP のブックキーピングをバイパスします。この方法で送信されたデータに対して OnCallResultOnCallError、または OnEvent の相関関係は実行されません。

使用例


var
  oStream: TFileStream;
begin
  oStream := TFileStream.Create('payload.bin', fmOpenRead);
  try
    WAMP.WriteData(oStream);
  finally
    oStream.Free;
  end;
end;

メソッドに戻る