TsgcWSPClient_WAMPMétodos › WriteData

WriteData Método

Envía una trama WAMP de texto o binaria preconstruida directamente a través del transporte WebSocket subyacente.

Sobrecargas

Sobrecarga 1

Sintaxis

procedure WriteData(const aText: String);

Parámetros

NombreTipoDescripción
aTextconst StringTrama de texto JSON WAMP lista para enviar (por ejemplo [2,"id","proc"] para una CALL). Se transmite textualmente como una trama de texto WebSocket.

Observaciones

Vía de escape de bajo nivel para emitir mensajes WAMP experimentales o específicos del servidor que la API de alto nivel (Call, Subscribe, Publish, etc.) no expone. El texto se escribe literalmente, por lo que el llamador es responsable de producir un payload de array WAMP bien formado. El uso indebido puede desincronizar la sesión o provocar que el servidor desconecte al cliente.

Ejemplo


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

Sobrecarga 2

Sintaxis

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

Parámetros

NombreTipoDescripción
aStreamTStreamStream de origen cuyos bytes se envían como frame WebSocket binario. Se respeta la posición actual y el stream se lee hacia adelante.
aSizeIntegerNúmero de bytes a enviar desde la posición actual. Pase 0 para transmitir desde la posición actual hasta el final del stream.
aStreamingconst TwsStreamingModo de fragmentación: stmNone envía la carga útil como un único frame; stmStart, stmContinue y stmEnd emiten frames de continuación WebSocket cuando la carga útil se divide en fragmentos.

Observaciones

Variante binaria del sobrecargado de texto. WAMP v1 es un protocolo JSON sobre texto, por lo que esta forma está pensada para cargas útiles complementarias (por ejemplo, frames de ping personalizados, transferencias de archivos fuera de banda o extensiones experimentales) en lugar del tráfico RPC/PubSub estándar. Omite toda la contabilidad WAMP: no se realiza ninguna correlación de OnCallResult, OnCallError ni OnEvent para los datos enviados de esta forma.

Ejemplo


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

Volver a Métodos