TsgcWebSocketClient › Methoden › WriteData
Sendet eine Textnachricht an den WebSocket-Server, optional in Fragmente einer bestimmten Größe aufgeteilt.
procedure WriteData(const aText: String; const aSize: Integer = 0; const aStreaming: TwsStreaming = stmNone);
| Name | Typ | Beschreibung |
|---|---|---|
aText | const String | Die Textnutzlast, die als WebSocket-Text-Frame an den Server gesendet werden soll. |
aSize | const Integer | Optionale Fragmentgröße in Bytes; wenn größer als null, wird die Nachricht in mehrere Fragmente dieser Größe aufgeteilt. Verwenden Sie 0 (Standard), um die gesamte Nachricht als einzelnen Frame zu senden. |
aStreaming | const TwsStreaming | Streaming-Modus für die fragmentierte Übertragung (stmNone, stmStart, stmContinue, stmFinish). Standard ist stmNone, was eine vollständige eigenständige Nachricht sendet. |
WriteData überträgt die Zeichenfolge als WebSocket-Text-Frame auf der aktiven Verbindung. Standardmäßig läuft der Aufruf auf dem aufrufenden Thread und kehrt zurück, sobald die Bytes an den Socket übergeben wurden. Wenn QueueOptions.Text auf einen anderen Wert als qmNone gesetzt ist, wird die Nachricht in eine Warteschlange gestellt und tatsächlich vom eigenen Thread der Verbindung gesendet, was Sperren verhindert, wenn mehrere Threads gleichzeitig schreiben. Der Aufruf ist eine No-Op, wenn der Client nicht verbunden ist, und jede Socket-Exception wird an OnError weitergeleitet. Verwenden Sie die Stream-Überladung beim Senden großer Payloads oder binärer Daten.
oClient.WriteData('My First sgcWebSockets Message!.');
procedure WriteData(const aStream: TStream; const aSize: Integer = 0; const aStreaming: TwsStreaming = stmNone);
| Name | Typ | Beschreibung |
|---|---|---|
aStream | const TStream | Quellstream, dessen Inhalt als WebSocket-Binär-Frame gesendet wird. Der Aufrufer bleibt der Eigentümer des Streams. |
aSize | const Integer | Optionale Fragmentgröße in Bytes; wenn größer als null, wird der Stream in mehrere Fragmente dieser Größe aufgeteilt. Verwenden Sie 0 (Standard), um den gesamten Stream als einzelnen Frame zu senden. |
aStreaming | const TwsStreaming | Streaming-Modus für die fragmentierte Übertragung (stmNone, stmStart, stmContinue, stmFinish). Standard ist stmNone, was eine vollständige eigenständige Nachricht sendet. |
WriteData liest den bereitgestellten Stream ab seiner aktuellen Position und überträgt den Inhalt als binären WebSocket-Frame. Der Aufruf läuft standardmäßig auf dem aufrufenden Thread; wenn QueueOptions.Binary auf einen anderen Wert als qmNone gesetzt ist, wird die Nachricht in eine Warteschlange gestellt und tatsächlich vom Verbindungs-Thread aus gesendet. Die Methode ist eine No-Op, wenn der Client nicht verbunden ist, und Socket-Ausnahmen werden abgefangen und an OnError weitergeleitet. Geben Sie den Stream erst frei, nachdem der Aufruf zurückgekehrt ist (oder, beim Verwenden einer Warteschlange, nachdem der Sendevorgang abgeschlossen ist).
oStream := TMemoryStream.Create;
try
oStream.LoadFromFile('payload.bin');
oClient.WriteData(oStream);
finally
oStream.Free;
end;