TsgcWSPClient_WAMP › Méthodes › WriteData
Envoie une trame WAMP texte ou binaire prédéfinie directement sur le transport WebSocket sous-jacent.
procedure WriteData(const aText: String);
| Nom | Type | Description |
|---|---|---|
aText | const 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.
|
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.
// 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);
| Nom | Type | Description |
|---|---|---|
aStream | TStream
| 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. |
aSize | Integer | Nombre 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.
|
É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.
var
oStream: TFileStream;
begin
oStream := TFileStream.Create('payload.bin', fmOpenRead);
try
WAMP.WriteData(oStream);
finally
oStream.Free;
end;
end;