TsgcWSPClient_WAMPMétodos › WriteData

WriteData Method

Envia um frame WAMP de texto ou binário pré-construído diretamente sobre o transporte WebSocket subjacente.

Overloads

Overload 1

Sintaxe

procedure WriteData(const aText: String);

Parâmetros

NameTypeDescrição
aTextconst StringFrame de texto JSON WAMP pronto para envio (por exemplo, [2,"id","proc"] para um CALL). Transmitido literalmente como um frame de texto WebSocket.

Observações

Saída de emergência de baixo nível para emitir mensagens WAMP experimentais ou específicas do servidor que a API de alto nível (Call, Subscribe, Publish, etc.) não expõe. O texto é escrito literalmente, então o chamador é responsável por produzir um payload de array WAMP bem formado. O uso indevido pode dessincronizar a sessão ou fazer com que o servidor desconecte o cliente.

Exemplo


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

Sobrecarga 2

Sintaxe

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

Parâmetros

NameTypeDescrição
aStreamTStreamStream de origem cujos bytes são enviados como um frame WebSocket binário. A posição atual é respeitada e o stream é lido para frente.
aSizeIntegerNúmero de bytes a enviar a partir da posição atual. Passe 0 para transmitir da posição atual até o final do stream.
aStreamingconst TwsStreamingModo de fragmentação: stmNone envia o payload como um único frame; stmStart, stmContinue e stmEnd emitem frames de continuação WebSocket quando o payload é dividido em chunks.

Observações

Companheiro binário da sobrecarga de texto. O WAMP v1 é um protocolo JSON sobre texto, então esta forma é destinada a payloads complementares (por exemplo, frames de ping feitos à mão, transferências de arquivos out-of-band ou extensões experimentais) em vez de tráfego RPC/PubSub padrão. Contorna toda a contabilidade WAMP — nenhuma correlação de OnCallResult, OnCallError ou OnEvent é realizada para os dados enviados desta forma.

Exemplo


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

Voltar para Métodos