TsgcWebSocketClientMetodi › WriteData

WriteData Method

Invia un messaggio di testo al server WebSocket, suddividendolo facoltativamente in frammenti di una determinata dimensione.

Overload

Overload 1

Sintassi

procedure WriteData(const aText: String; const aSize: Integer = 0; const aStreaming: TwsStreaming = stmNone);

Parametri

NomeTipoDescrizione
aTextconst StringIl payload testuale da inviare al server come frame di testo WebSocket.
aSizeconst IntegerDimensione 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.
aStreamingconst TwsStreamingModalità di streaming per la trasmissione frammentata (stmNone, stmStart, stmContinue, stmFinish). Il valore predefinito è stmNone, che invia un messaggio completo autonomo.

Note

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.

Esempio


oClient.WriteData('My First sgcWebSockets Message!.');

Sovraccarico 2

Sintassi

procedure WriteData(const aStream: TStream; const aSize: Integer = 0; const aStreaming: TwsStreaming = stmNone);

Parametri

NomeTipoDescrizione
aStreamconst TStreamStream sorgente il cui contenuto verrà inviato come frame binario WebSocket. Il chiamante rimane il proprietario dello stream.
aSizeconst IntegerDimensione 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.
aStreamingconst TwsStreamingModalità di streaming per la trasmissione frammentata (stmNone, stmStart, stmContinue, stmFinish). Il valore predefinito è stmNone, che invia un messaggio completo autonomo.

Note

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).

Esempio


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

Torna ai Metodi