TsgcWebSocketServer › Métodos › WriteData
Envia uma mensagem a um único cliente 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 servidor 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 cujo GUID corresponde a aGuid e envia a mensagem de texto para esse único cliente. O GUID é o valor exposto por TsgcWSConnection.Guid, tipicamente capturado em OnConnect e armazenado pela aplicação. Quando QueueOptions.Text está definido como um valor diferente de qmNone, o frame é enfileirado e despachado a partir da thread da conexão em vez da thread do chamador (não suportado quando IOHandlerOptions.IOHandlerType = iohIOCP). Utilize Broadcast para alcançar todos os clientes ativos 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 servidor 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 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 (ou, ao enfileirar, até que o envio seja concluído). Quando QueueOptions.Binary é definido como um valor diferente de qmNone, o frame é enfileirado e despachado a partir da thread da conexão, em vez da thread do chamador (não suportado quando IOHandlerOptions.IOHandlerType = iohIOCP). 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;