TsgcWebSocketProxyServer › Métodos › WriteData

WriteData Método

Envía un mensaje a un único cliente WebSocket en el proxy identificado por su GUID de conexión.

Sobrecargas

Sobrecarga 1

Sintaxis

function WriteData(const aGuid, aMessage: string): Boolean;

Parámetros

NombreTipoDescripción
aGuidconst stringIdentificador de la conexión de destino asignado por el proxy cuando se completó el handshake del cliente.
aMessageconst stringPayload de texto que se enviará a ese cliente como una trama de texto WebSocket.

Valor de Retorno

True cuando se ha localizado una conexión con el GUID indicado y la trama se ha entregado a su socket; False cuando no existe ninguna conexión activa coincidente. (Boolean)

Observaciones

Esta sobrecarga busca la conexión WebSocket cuyo GUID coincide con aGuid y envía el mensaje de texto a ese único cliente en el lado del navegador del túnel. El GUID es el valor expuesto por TsgcWSConnection.Guid, capturado habitualmente en OnConnect y almacenado por la aplicación. El enlace TCP ascendente emparejado no se escribe con esta llamada; úsela para enviar datos desde el proxy al cliente del navegador sin enrutar los bytes a través del servidor TCP de backend. Use Broadcast para llegar a todos los clientes WebSocket activos con una sola llamada.

Ejemplo


oServer.WriteData('guid', 'My First sgcWebSockets Message!.');

Sobrecarga 2

Sintaxis

function WriteData(const aGuid: String; aStream: TStream; aSize: Integer = 0; const aStreaming: TwsStreaming = stmNone) : Boolean;

Parámetros

NombreTipoDescripción
aGuidconst StringIdentificador de la conexión de destino asignado por el proxy cuando se completó el handshake del cliente.
aStreamTStreamFlujo de origen cuyo contenido se envía al cliente como un frame binario WebSocket. El llamador sigue siendo el propietario del flujo.
aSizeIntegerTamañ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.

Valor de Retorno

True si se localizó una conexión con el GUID indicado y el flujo se entregó a su socket; False si no existe ninguna conexión activa coincidente. (Boolean)

Observaciones

Esta sobrecarga apunta a un único cliente WebSocket en el lado orientado al navegador del proxy con una carga útil binaria leída desde el flujo proporcionado. El flujo se consume desde su posición actual y el servidor no asume la propiedad, por lo que el llamador debe mantenerlo activo hasta que WriteData retorne. La conexión TCP ascendente asociada a este GUID no se escribe aquí; los bytes se entregan únicamente al par WebSocket. Utilice aSize junto con aStreaming cuando envíe cargas útiles muy grandes que deban fragmentarse en múltiples tramas WebSocket.

Ejemplo


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

Volver a Métodos