TsgcWebSocketClient方法 › WriteData

WriteData 方法

向 WebSocket 服务器发送文本消息,可选地将其拆分为指定大小的分片。

重载

重载 1

语法

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

参数

名称类型描述
aTextconst String要作为 WebSocket 文本帧发送到服务器的文本载荷。
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;

返回方法