TsgcWebSocketClientMétodos › WriteData

WriteData Método

Envía un mensaje de texto al servidor WebSocket, dividiéndolo opcionalmente en fragmentos de un tamaño determinado.

Sobrecargas

Sobrecarga 1

Sintaxis

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

Parámetros

NombreTipoDescripción
aTextconst StringLa carga útil de texto a enviar al servidor como frame de texto WebSocket.
aSizeconst IntegerTamañ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.
aStreamingconst TwsStreamingModo de transmisión para la transmisión fragmentada (stmNone, stmStart, stmContinue, stmFinish). El valor predeterminado es stmNone, que envía un mensaje completo independiente.

Observaciones

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.

Ejemplo


oClient.WriteData('My First sgcWebSockets Message!.');

Sobrecarga 2

Sintaxis

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

Parámetros

NombreTipoDescripción
aStreamconst TStreamFlujo fuente cuyo contenido se enviará como un frame binario WebSocket. El llamante conserva la propiedad del flujo.
aSizeconst IntegerTamañ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.
aStreamingconst TwsStreamingModo de transmisión para la transmisión fragmentada (stmNone, stmStart, stmContinue, stmFinish). El valor predeterminado es stmNone, que envía un mensaje completo independiente.

Observaciones

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).

Ejemplo


oStream := TMemoryStream.Create;
try
  oStream.LoadFromFile('payload.bin');
  oClient.WriteData(oStream);
finally
  oStream.Free;
end;

Volver a Métodos