TsgcWebSocketProxyServer › Métodos › WriteData
Envía un mensaje a un único cliente WebSocket en el proxy identificado por su GUID de conexión.
function WriteData(const aGuid, aMessage: string): Boolean;
| Nombre | Tipo | Descripción |
|---|---|---|
aGuid | const string | Identificador de la conexión de destino asignado por el proxy cuando se completó el handshake del cliente. |
aMessage | const string | Payload de texto que se enviará a ese cliente como una trama de texto WebSocket. |
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)
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.
oServer.WriteData('guid', 'My First sgcWebSockets Message!.');
function WriteData(const aGuid: String; aStream: TStream; aSize: Integer = 0; const aStreaming: TwsStreaming = stmNone) : Boolean;
| Nombre | Tipo | Descripción |
|---|---|---|
aGuid | const String | Identificador de la conexión de destino asignado por el proxy cuando se completó el handshake del cliente. |
aStream | TStream | Flujo de origen cuyo contenido se envía al cliente como un frame binario WebSocket. El llamador sigue siendo el propietario del flujo. |
aSize | 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. |
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)
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.
oStream := TMemoryStream.Create;
try
oStream.LoadFromFile('payload.bin');
oServer.WriteData('guid', oStream);
finally
oStream.Free;
end;