TsgcWebSocketProxyServer › Métodos › WriteData
Envia uma mensagem a um único cliente WebSocket no proxy identificado por seu GUID de conexão.
function WriteData(const aGuid, aMessage: string): Boolean;
| Name | Type | Descrição |
|---|---|---|
aGuid | const string | Identificador da conexão de destino conforme atribuído pelo proxy quando o handshake do cliente foi concluído. |
aMessage | const string | Payload de texto a entregar a esse cliente como um frame de texto WebSocket. |
True quando uma conexão com o GUID fornecido foi localizada e o frame foi entregue ao seu socket; False quando nenhuma conexão ativa correspondente existe. (Boolean)
Esta sobrecarga localiza a conexão WebSocket cujo GUID corresponde a aGuid e envia a mensagem de texto para esse único cliente no lado do túnel voltado ao navegador. O GUID é o valor exposto por TsgcWSConnection.Guid, tipicamente capturado em OnConnect e armazenado pela aplicação. O link TCP upstream pareado não é escrito por esta chamada; utilize-o para enviar dados do proxy ao cliente do navegador sem rotear os bytes através do servidor TCP backend. Utilize Broadcast para alcançar cada cliente WebSocket ativo em uma única chamada.
oServer.WriteData('guid', 'My First sgcWebSockets Message!.');
function WriteData(const aGuid: String; aStream: TStream; aSize: Integer = 0; const aStreaming: TwsStreaming = stmNone) : Boolean;
| Name | Type | Descrição |
|---|---|---|
aGuid | const String | Identificador da conexão de destino conforme atribuído pelo proxy quando o handshake do cliente foi concluído. |
aStream | TStream | Stream de origem cujo conteúdo é enviado ao cliente como um frame binário WebSocket. O chamador permanece o proprietário do stream. |
aSize | Integer | Tamanho de fragmento opcional em bytes; quando maior que zero, o stream é dividido em múltiplos fragmentos deste tamanho. Use 0 (o padrão) para enviar todo o stream como um único frame. |
aStreaming | const TwsStreaming | Modo de streaming para transmissão fragmentada (stmNone, stmStart, stmContinue, stmFinish). Padrão stmNone, que envia uma mensagem completa e independente. |
True quando uma conexão com o GUID fornecido foi localizada e o stream foi entregue ao seu socket; False quando não existe nenhuma conexão ativa correspondente. (Boolean)
Esta sobrecarga tem como alvo um único cliente WebSocket no lado do proxy voltado para o navegador, com um payload binário lido a partir do fluxo fornecido. O fluxo é consumido a partir da posição atual e o servidor não assume sua propriedade, portanto o chamador deve mantê-lo vivo até que WriteData retorne. A conexão TCP upstream associada a este GUID não é gravada aqui; os bytes são entregues apenas ao peer WebSocket. Use aSize junto com aStreaming ao enviar payloads muito grandes que devem ser fragmentados em múltiplos frames WebSocket.
oStream := TMemoryStream.Create;
try
oStream.LoadFromFile('payload.bin');
oServer.WriteData('guid', oStream);
finally
oStream.Free;
end;