TsgcWebSocketClient › Metodi › WriteData
Invia un messaggio di testo al server WebSocket, suddividendolo facoltativamente in frammenti di una determinata dimensione.
procedure WriteData(const aText: String; const aSize: Integer = 0; const aStreaming: TwsStreaming = stmNone);
| Nome | Tipo | Descrizione |
|---|---|---|
aText | const String | Il payload testuale da inviare al server come frame di testo WebSocket. |
aSize | const Integer | Dimensione opzionale del frammento in byte; quando maggiore di zero, il messaggio viene suddiviso in più frammenti di questa dimensione. Utilizzare 0 (il valore predefinito) per inviare l'intero messaggio come un singolo frame. |
aStreaming | const TwsStreaming | Modalità di streaming per la trasmissione frammentata (stmNone, stmStart, stmContinue, stmFinish). Il valore predefinito è stmNone, che invia un messaggio completo autonomo. |
WriteData trasmette la stringa come frame di testo WebSocket sulla connessione attiva. Per impostazione predefinita, la chiamata viene eseguita sul thread chiamante e restituisce il controllo non appena i byte vengono consegnati al socket. Quando QueueOptions.Text è impostato su un valore diverso da qmNone, il messaggio viene accodato e inviato effettivamente dal thread della connessione, evitando blocchi quando più thread scrivono contemporaneamente. La chiamata non ha effetto se il client non è connesso e qualsiasi eccezione socket viene inoltrata a OnError. Utilizzare l'overload con stream per l'invio di payload di grandi dimensioni o dati binari.
oClient.WriteData('My First sgcWebSockets Message!.');
procedure WriteData(const aStream: TStream; const aSize: Integer = 0; const aStreaming: TwsStreaming = stmNone);
| Nome | Tipo | Descrizione |
|---|---|---|
aStream | const TStream | Stream sorgente il cui contenuto verrà inviato come frame binario WebSocket. Il chiamante rimane il proprietario dello stream. |
aSize | const Integer | Dimensione opzionale del frammento in byte; quando è maggiore di zero, lo stream viene suddiviso in più frammenti di questa dimensione. Utilizzare 0 (il valore predefinito) per inviare l'intero stream come un singolo frame. |
aStreaming | const TwsStreaming | Modalità di streaming per la trasmissione frammentata (stmNone, stmStart, stmContinue, stmFinish). Il valore predefinito è stmNone, che invia un messaggio completo autonomo. |
WriteData legge lo stream fornito dalla sua posizione corrente e trasmette il contenuto come frame binario WebSocket. La chiamata viene eseguita sul thread chiamante per impostazione predefinita; quando QueueOptions.Binary è impostato su un valore diverso da qmNone, il messaggio viene accodato e inviato effettivamente dal thread di connessione. Il metodo è un'operazione nulla quando il client non è connesso, e le eccezioni socket vengono catturate e inoltrate a OnError. Liberare lo stream solo dopo che la chiamata è tornata (oppure, quando si usa l'accodamento, dopo che l'invio è completato).
oStream := TMemoryStream.Create;
try
oStream.LoadFromFile('payload.bin');
oClient.WriteData(oStream);
finally
oStream.Free;
end;