TsgcWSPClient_WAMP › Methods › WriteData
Invia un frame WAMP di testo o binario predefinito direttamente sul trasporto WebSocket sottostante.
procedure WriteData(const aText: String);
| Nome | Tipo | Descrizione |
|---|---|---|
aText | const String | Frame di testo JSON WAMP pronto per l'invio (ad esempio [2,"id","proc"] per una CALL). Trasmesso verbatim come frame di testo WebSocket. |
Porta di fuga a basso livello per emettere messaggi WAMP sperimentali o specifici del server che l'API di alto livello (Call, Subscribe, Publish, ecc.) non espone. Il testo viene scritto verbatim, pertanto il chiamante è responsabile della produzione di un payload array WAMP ben formato. Un uso improprio può desincronizzare la sessione o causare la disconnessione del client da parte del server.
// 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);
| Nome | Tipo | Descrizione |
|---|---|---|
aStream | TStream | Stream di origine i cui byte vengono inviati come frame WebSocket binario. La posizione corrente viene rispettata e lo stream viene letto in avanti. |
aSize | Integer | Numero di byte da inviare dalla posizione corrente. Passare 0 per trasmettere dalla posizione corrente fino alla fine del flusso. |
aStreaming | const TwsStreaming | Modalità di frammentazione: stmNone invia il payload come un singolo frame; stmStart, stmContinue e stmEnd emettono frame di continuazione WebSocket quando il payload è suddiviso in blocchi. |
Controparte binaria dell'overload testuale. WAMP v1 è un protocollo JSON-over-text, quindi questa forma è destinata a payload complementari (ad esempio frame ping realizzati manualmente, trasferimenti di file fuori banda o estensioni sperimentali) piuttosto che al traffico RPC/PubSub standard. Aggira tutta la gestione WAMP — nessuna correlazione OnCallResult, OnCallError o OnEvent viene eseguita per i dati inviati in questo modo.
var
oStream: TFileStream;
begin
oStream := TFileStream.Create('payload.bin', fmOpenRead);
try
WAMP.WriteData(oStream);
finally
oStream.Free;
end;
end;