TsgcWebSocketClient › 方法 › WriteData
向 WebSocket 服务器发送文本消息,可选地将其拆分为指定大小的分片。
procedure WriteData(const aText: String; const aSize: Integer = 0; const aStreaming: TwsStreaming = stmNone);
| 名称 | 类型 | 描述 |
|---|---|---|
aText | const String | 要作为 WebSocket 文本帧发送到服务器的文本载荷。 |
aSize | const Integer | 可选的片段大小(字节);大于零时,消息将被拆分为多个该大小的片段。使用 0(默认值)将整条消息作为单帧发送。 |
aStreaming | const TwsStreaming | 分片传输的流模式(stmNone、stmStart、stmContinue、stmFinish)。默认为 stmNone,发送完整的独立消息。 |
WriteData 将字符串作为 WebSocket 文本帧在活动连接上传输。默认情况下,调用在调用线程上运行,并在字节交给套接字后返回。当 QueueOptions.Text 设置为 qmNone 以外的值时,消息将被排队并从连接自身的线程实际发送,这可以防止多线程并发写入时出现锁。当客户端未连接时,调用为空操作,任何套接字异常都将转发到 OnError。发送大型载荷或二进制数据时请使用流重载。
oClient.WriteData('My First sgcWebSockets Message!.');
procedure WriteData(const aStream: TStream; const aSize: Integer = 0; const aStreaming: TwsStreaming = stmNone);
| 名称 | 类型 | 描述 |
|---|---|---|
aStream | const TStream | 将作为 WebSocket 二进制帧发送的内容的源流。调用方保留流的所有权。 |
aSize | const Integer | 可选的片段大小(字节);当大于零时,流将被分割为多个此大小的片段。使用 0(默认值)以单个帧发送整个流。 |
aStreaming | const TwsStreaming | 分片传输的流模式(stmNone、stmStart、stmContinue、stmFinish)。默认为 stmNone,发送完整的独立消息。 |
WriteData 从流的当前位置读取所提供的流,并将内容作为 WebSocket 二进制帧传输。默认情况下调用在调用线程上运行;当 QueueOptions.Binary 设置为非 qmNone 的值时,消息会被排队并从连接线程实际分发。当客户端未连接时,此方法为空操作,套接字异常被捕获并转发到 OnError。仅在调用返回后(排队时则在发送完成后)释放流。
oStream := TMemoryStream.Create;
try
oStream.LoadFromFile('payload.bin');
oClient.WriteData(oStream);
finally
oStream.Free;
end;