TsgcWSPClient_WAMP › Methoden › WriteData
Sendet einen vorab erstellten Text- oder Binär-WAMP-Frame direkt über den zugrunde liegenden WebSocket-Transport.
procedure WriteData(const aText: String);
| Name | Typ | Beschreibung |
|---|---|---|
aText | const String | Sendebereiter WAMP-JSON-Text-Frame (zum Beispiel [2,"id","proc"] für einen CALL). Wird unverändert als WebSocket-Text-Frame übertragen. |
Low-Level-Notausgang zum Senden experimenteller oder serverspezifischer WAMP-Nachrichten, die die High-Level-API (Call, Subscribe, Publish usw.) nicht bereitstellt. Der Text wird wortgetreu geschrieben, daher ist der Aufrufer dafür verantwortlich, eine wohlgeformte WAMP-Array-Nutzlast zu erzeugen. Fehlbedienung kann die Sitzung desynchronisieren oder dazu führen, dass der Server die Verbindung zum Client trennt.
// send a hand-crafted WAMP PREFIX frame
WAMP.WriteData('[1,"calc","http://example.com/simple/calc#"]');
procedure WriteData(aStream: TStream; aSize: Integer = 0; const aStreaming: TwsStreaming = stmNone);
| Name | Typ | Beschreibung |
|---|---|---|
aStream | TStream | Quell-Stream, dessen Bytes als binärer WebSocket-Frame gesendet werden. Die aktuelle Position wird berücksichtigt und der Stream wird vorwärts gelesen. |
aSize | Integer | Anzahl der ab der aktuellen Position zu sendenden Bytes. Übergeben Sie 0, um von der aktuellen Position bis zum Ende des Streams zu übertragen. |
aStreaming | const TwsStreaming | Fragmentierungsmodus: stmNone sendet die Nutzlast als einzelnen Frame; stmStart, stmContinue und stmEnd geben WebSocket-Fortsetzungsframes aus, wenn die Nutzlast in Chunks aufgeteilt wird. |
Binär-Begleiter der Text-Überladung. WAMP v1 ist ein JSON-über-Text-Protokoll, daher ist diese Form für Begleit-Nutzlasten gedacht (zum Beispiel handgefertigte Ping-Frames, Out-of-Band-Dateiübertragungen oder experimentelle Erweiterungen) statt für standardmäßigen RPC-/PubSub-Verkehr. Umgeht jegliche WAMP-Buchführung — für auf diese Weise gesendete Daten wird keine OnCallResult-, OnCallError- oder OnEvent-Korrelation durchgeführt.
var
oStream: TFileStream;
begin
oStream := TFileStream.Create('payload.bin', fmOpenRead);
try
WAMP.WriteData(oStream);
finally
oStream.Free;
end;
end;