TsgcWSPClient_WAMPMéthodes › WriteData

WriteData Méthode

Envoie une trame WAMP texte ou binaire prédéfinie directement sur le transport WebSocket sous-jacent.

Surcharges

Surcharge 1

Syntaxe

procedure WriteData(const aText: String);

Paramètres

NomTypeDescription
aTextconst String Trame de texte JSON WAMP prête à envoyer (par exemple [2,"id","proc"] pour un CALL). Transmis verbatim sous forme de trame texte WebSocket.

Remarques

Mécanisme de bas niveau pour émettre des messages WAMP expérimentaux ou spécifiques au serveur que l'API de haut niveau (Call, Subscribe, Publish, etc.) n'expose pas. Le texte est écrit verbatim ; l'appelant est donc responsable de produire une charge utile de tableau WAMP bien formée. Une mauvaise utilisation peut désynchroniser la session ou amener le serveur à déconnecter le client.

Exemple


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

Surcharge 2

Syntaxe

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

Paramètres

NomTypeDescription
aStreamTStream Flux source dont les octets sont envoyés sous forme de trame WebSocket binaire. La position courante est respectée et le flux est lu vers l'avant.
aSizeIntegerNombre d'octets à envoyer à partir de la position courante. Passer 0 pour transmettre de la position courante jusqu'à la fin du flux.
aStreaming const TwsStreaming Mode de fragmentation : stmNone envoie la charge utile en une seule trame ; stmStart, stmContinue et stmEnd émettent des trames de continuation WebSocket lorsque la charge utile est divisée en morceaux.

Remarques

Équivalent binaire de la surcharge texte. WAMP v1 est un protocole JSON sur texte, donc cette forme est destinée aux charges utiles complémentaires (par exemple des trames ping artisanales, des transferts de fichiers hors bande ou des extensions expérimentales) plutôt qu'au trafic RPC/PubSub standard. Contourne toute la gestion WAMP — aucune corrélation OnCallResult, OnCallError ou OnEvent n'est effectuée pour les données envoyées de cette façon.

Exemple


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

Retour aux méthodes