TsgcWSPClient_WAMPMetody › WriteData

WriteData Metoda

Wysyła wstępnie zbudowaną ramkę tekstową lub binarną WAMP bezpośrednio przez bazowy transport WebSocket.

Przeciążenia

Przeciążenie 1

Składnia

procedure WriteData(const aText: String);

Parametry

NazwaTypOpis
aTextconst StringGotowa do wysłania tekstowa ramka WAMP JSON (np. [2,"id","proc"] dla wywołania CALL). Przesyłana dosłownie jako tekstowa ramka WebSocket.

Uwagi

Niskopoziomowe wyjście awaryjne do wysyłania eksperymentalnych lub specyficznych dla serwera wiadomości WAMP, których nie udostępnia wysokopoziomowe API (Call, Subscribe, Publish itp.). Tekst jest zapisywany dosłownie, dlatego wywołujący jest odpowiedzialny za wygenerowanie poprawnego ładunku tablicy WAMP. Nieprawidłowe użycie może desynchronizować sesję lub spowodować rozłączenie klienta przez serwer.

Przykład


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

Przeciążenie 2

Składnia

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

Parametry

NazwaTypOpis
aStreamTStreamStrumień źródłowy, którego bajty są wysyłane jako binarna ramka WebSocket. Brana jest pod uwagę bieżąca pozycja, a strumień jest odczytywany do przodu.
aSizeIntegerLiczba bajtów do wysłania od bieżącej pozycji. Wartość 0 oznacza transmisję od bieżącej pozycji do końca strumienia.
aStreamingconst TwsStreamingTryb fragmentacji: stmNone wysyła ładunek jako pojedynczą ramkę; stmStart, stmContinue i stmEnd emitują ramki kontynuacji WebSocket, gdy ładunek jest dzielony na fragmenty.

Uwagi

Binarny odpowiednik przeciążenia tekstowego. WAMP v1 jest protokołem JSON-over-text, więc ta forma jest przeznaczona dla ładunków towarzyszących (na przykład ręcznie tworzonych ramek ping, transferów plików poza pasmem lub eksperymentalnych rozszerzeń), a nie dla standardowego ruchu RPC/PubSub. Pomija całą logikę księgową WAMP, więc dla danych wysyłanych w ten sposób nie jest wykonywana żadna korelacja OnCallResult, OnCallError ani OnEvent.

Przykład


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

Powrót do metod