TsgcTCPClient › イベント › OnMessage

OnMessage イベント

TCP サーバーから受信した生バイトをテキストとして表面化できる場合に発生します。

構文

property OnMessage: TsgcWSMessageEvent;
// TsgcWSMessageEvent = procedure(Connection: TsgcWSConnection; const Text: string) of object

デフォルト値

—

解説

WebSocketクライアントとは異なり、TsgcTCPClientはハンドシェイクのネゴシエーションを行わず、フレーム化されたメッセージも受信しません。そのため、OnMessageはTCPソケットに到着した生のバイトを文字列に変換して配信します。TCPEndOfFrameScanBufferがeofScanNoneの場合、すべての読み取りは到着したそのまま表面化されます。eofScanLatestBytesまたはeofScanAllBytesの場合、バッファはTCPEndOfFrame区切り文字で分割され、論理フレームごとに1つのイベントが発生します。Textパラメータは、UTF-8でデコードされたペイロードを伝えます。サーバーが非テキストデータを送信する場合は、代わりにOnBinaryを使用してください。デフォルトではNotifyEventsはneAsynchronousであるため、ハンドラはメインスレッドのコンテキストで実行され、UIコントロールを直接更新しても安全です。クライアントが大量のデータを受信し、同期処理を自分で行いたい場合は、neNoSyncに切り替えてください。

使用例


procedure OnMessage(Connection: TsgcWSConnection; const Text: string);
begin
  ShowMessage('Received from TCP server: ' + Text);
end;

イベントに戻る