TsgcWSPClient_WAMP › Métodos › WriteData
Envia um frame WAMP de texto ou binário pré-construído diretamente sobre o transporte WebSocket subjacente.
procedure WriteData(const aText: String);
| Name | Type | Descrição |
|---|---|---|
aText | const String | Frame de texto JSON WAMP pronto para envio (por exemplo, [2,"id","proc"] para um CALL). Transmitido literalmente como um frame de texto WebSocket. |
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.
// 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);
| Name | Type | Descrição |
|---|---|---|
aStream | TStream | Stream de origem cujos bytes são enviados como um frame WebSocket binário. A posição atual é respeitada e o stream é lido para frente. |
aSize | Integer | Número de bytes a enviar a partir da posição atual. Passe 0 para transmitir da posição atual até o final do stream. |
aStreaming | const TwsStreaming | Modo 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. |
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.
var
oStream: TFileStream;
begin
oStream := TFileStream.Create('payload.bin', fmOpenRead);
try
WAMP.WriteData(oStream);
finally
oStream.Free;
end;
end;