TsgcWebSocketClient › Métodos › WriteData
Envía un mensaje de texto al servidor WebSocket, dividiéndolo opcionalmente en fragmentos de un tamaño determinado.
procedure WriteData(const aText: String; const aSize: Integer = 0; const aStreaming: TwsStreaming = stmNone);
| Nombre | Tipo | Descripción |
|---|---|---|
aText | const String | La carga útil de texto a enviar al servidor como frame de texto WebSocket. |
aSize | const Integer | Tamaño de fragmento opcional en bytes; cuando es mayor que cero, el mensaje se divide en varios fragmentos de este tamaño. Use 0 (valor predeterminado) para enviar el mensaje completo como un único frame. |
aStreaming | const TwsStreaming | Modo de transmisión para la transmisión fragmentada (stmNone, stmStart, stmContinue, stmFinish). El valor predeterminado es stmNone, que envía un mensaje completo independiente. |
WriteData transmite la cadena como una trama de texto WebSocket en la conexión activa. De forma predeterminada, la llamada se ejecuta en el hilo que la invoca y retorna una vez que los bytes se han entregado al socket. Cuando QueueOptions.Text se establece en un valor distinto de qmNone, el mensaje se pone en cola y realmente se envía desde el propio hilo de la conexión, lo que evita bloqueos cuando varios hilos escriben concurrentemente. La llamada no tiene efecto cuando el cliente no está conectado, y cualquier excepción de socket se reenvía a OnError. Use la sobrecarga de flujo al enviar cargas útiles grandes o datos binarios.
oClient.WriteData('My First sgcWebSockets Message!.');
procedure WriteData(const aStream: TStream; const aSize: Integer = 0; const aStreaming: TwsStreaming = stmNone);
| Nombre | Tipo | Descripción |
|---|---|---|
aStream | const TStream | Flujo fuente cuyo contenido se enviará como un frame binario WebSocket. El llamante conserva la propiedad del flujo. |
aSize | const Integer | Tamaño de fragmento opcional en bytes; cuando es mayor que cero, el flujo se divide en múltiples fragmentos de este tamaño. Use 0 (el valor predeterminado) para enviar todo el flujo como un único frame. |
aStreaming | const TwsStreaming | Modo de transmisión para la transmisión fragmentada (stmNone, stmStart, stmContinue, stmFinish). El valor predeterminado es stmNone, que envía un mensaje completo independiente. |
WriteData lee el stream suministrado desde su posición actual y transmite el contenido como un frame binario WebSocket. La llamada se ejecuta en el hilo que la invoca de forma predeterminada; cuando QueueOptions.Binary se establece en un valor distinto de qmNone, el mensaje se pone en cola y se despacha desde el hilo de conexión. El método no tiene efecto cuando el cliente no está conectado, y las excepciones de socket se capturan y se reenvían a OnError. Libere el stream solo después de que la llamada retorne (o, cuando se utilice cola, después de que el envío se complete).
oStream := TMemoryStream.Create;
try
oStream.LoadFromFile('payload.bin');
oClient.WriteData(oStream);
finally
oStream.Free;
end;