TsgcWSPClient_WAMPMethods › WriteData

WriteData Method

Invia un frame WAMP di testo o binario predefinito direttamente sul trasporto WebSocket sottostante.

Overload

Overload 1

Sintassi

procedure WriteData(const aText: String);

Parametri

NomeTipoDescrizione
aTextconst StringFrame di testo JSON WAMP pronto per l'invio (ad esempio [2,"id","proc"] per una CALL). Trasmesso verbatim come frame di testo WebSocket.

Note

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.

Esempio


// send a hand-crafted WAMP PREFIX frame
WAMP.WriteData('[1,"calc","http://example.com/simple/calc#"]');

Sovraccarico 2

Sintassi

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

Parametri

NomeTipoDescrizione
aStreamTStreamStream di origine i cui byte vengono inviati come frame WebSocket binario. La posizione corrente viene rispettata e lo stream viene letto in avanti.
aSizeIntegerNumero di byte da inviare dalla posizione corrente. Passare 0 per trasmettere dalla posizione corrente fino alla fine del flusso.
aStreamingconst TwsStreamingModalità 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.

Note

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.

Esempio


var
  oStream: TFileStream;
begin
  oStream := TFileStream.Create('payload.bin', fmOpenRead);
  try
    WAMP.WriteData(oStream);
  finally
    oStream.Free;
  end;
end;

Torna ai Metodi