TsgcWebSocketProxyServer › Métodos › WriteData

WriteData Method

Envia uma mensagem a um único cliente WebSocket no proxy identificado por seu GUID de conexão.

Overloads

Overload 1

Sintaxe

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

Parâmetros

NameTypeDescrição
aGuidconst stringIdentificador da conexão de destino conforme atribuído pelo proxy quando o handshake do cliente foi concluído.
aMessageconst stringPayload de texto a entregar a esse cliente como um frame de texto WebSocket.

Valor de retorno

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)

Observações

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.

Exemplo


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

Sobrecarga 2

Sintaxe

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

Parâmetros

NameTypeDescrição
aGuidconst StringIdentificador da conexão de destino conforme atribuído pelo proxy quando o handshake do cliente foi concluído.
aStreamTStreamStream de origem cujo conteúdo é enviado ao cliente como um frame binário WebSocket. O chamador permanece o proprietário do stream.
aSizeIntegerTamanho 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.
aStreamingconst TwsStreamingModo de streaming para transmissão fragmentada (stmNone, stmStart, stmContinue, stmFinish). Padrão stmNone, que envia uma mensagem completa e independente.

Valor de retorno

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)

Observações

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.

Exemplo


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

Voltar para Métodos