TsgcWebSocketClientMethoden › WriteData

WriteData Methode

Verzendt een tekstbericht naar de WebSocket-server, optioneel opgesplitst in fragmenten van een opgegeven grootte.

Overloads

Overload 1

Syntaxis

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

Parameters

NaamTypeBeschrijving
aTextconst StringDe tekstpayload die als WebSocket-tekstframe naar de server wordt verzonden.
aSizeconst IntegerOptionele fragmentgrootte in bytes; wanneer groter dan nul wordt het bericht opgesplitst in meerdere fragmenten van deze grootte. Gebruik 0 (de standaard) om het hele bericht als één enkel frame te verzenden.
aStreamingconst TwsStreamingStreamingmodus voor gefragmenteerde overdracht (stmNone, stmStart, stmContinue, stmFinish). Standaard stmNone, waarmee een volledig zelfstandig bericht wordt verzonden.

Opmerkingen

WriteData verzendt de tekenreeks als een WebSocket-tekstframe op de actieve verbinding. Standaard wordt de aanroep uitgevoerd op de aanroepende thread en keert terug zodra de bytes aan de socket zijn overgedragen. Wanneer QueueOptions.Text is ingesteld op een andere waarde dan qmNone, wordt het bericht in de wachtrij geplaatst en feitelijk verzonden vanuit de eigen thread van de verbinding, wat vergrendelingen voorkomt wanneer meerdere threads gelijktijdig schrijven. De aanroep heeft geen effect wanneer de client niet is verbonden, en elke socketuitzondering wordt doorgestuurd naar OnError. Gebruik de stream-overload voor het verzenden van grote payloads of binaire gegevens.

Voorbeeld


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

Overload 2

Syntaxis

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

Parameters

NaamTypeBeschrijving
aStreamconst TStreamBronstream waarvan de inhoud zal worden verzonden als een WebSocket-binair frame. De aanroeper blijft de eigenaar van de stream.
aSizeconst IntegerOptionele fragmentgrootte in bytes; wanneer groter dan nul, wordt de stream opgesplitst in meerdere fragmenten van deze grootte. Gebruik 0 (de standaard) om de volledige stream als één frame te verzenden.
aStreamingconst TwsStreamingStreamingmodus voor gefragmenteerde overdracht (stmNone, stmStart, stmContinue, stmFinish). Standaard stmNone, waarmee een volledig zelfstandig bericht wordt verzonden.

Opmerkingen

WriteData leest de opgegeven stream vanaf zijn huidige positie en verzendt de inhoud als een WebSocket-binair frame. De aanroep wordt standaard uitgevoerd op de aanroepende thread; wanneer QueueOptions.Binary is ingesteld op een andere waarde dan qmNone, wordt het bericht in de wachtrij geplaatst en daadwerkelijk verzonden vanuit de verbindingsthread. De methode is een no-op wanneer de client niet verbonden is, en socket-uitzonderingen worden onderschept en doorgestuurd naar OnError. Geef de stream pas vrij nadat de aanroep terugkeert (of, bij het in wachtrij plaatsen, nadat de verzending is voltooid).

Voorbeeld


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

Terug naar methoden