TsgcWebSocketProxyServer › Methoden › WriteData

WriteData Methode

Stuurt een bericht naar één WebSocket-client op de proxy geïdentificeerd door zijn verbindings-GUID.

Overloads

Overload 1

Syntaxis

function WriteData(const aGuid, aMessage: string): Boolean;

Parameters

NaamTypeBeschrijving
aGuidconst stringID van de doelverbinding zoals toegewezen door de proxy toen de client-handshake werd voltooid.
aMessageconst stringTekstpayload om als WebSocket-tekstframe aan die client te bezorgen.

Retourwaarde

True wanneer een verbinding met de opgegeven GUID is gevonden en het frame is doorgegeven aan de socket; False wanneer er geen overeenkomende actieve verbinding bestaat. (Boolean)

Opmerkingen

Deze overload zoekt de WebSocket-verbinding op waarvan de GUID overeenkomt met aGuid en verzendt het tekstbericht naar die ene client aan de browserzijde van de tunnel. De GUID is de waarde die wordt blootgesteld door TsgcWSConnection.Guid, doorgaans vastgelegd in OnConnect en opgeslagen door de toepassing. De gekoppelde upstream-TCP-link wordt door deze aanroep niet beschreven; gebruik het om gegevens van de proxy naar de browserclient te pushen zonder de bytes via de backend-TCP-server te routeren. Gebruik Broadcast om elke actieve WebSocket-client in één aanroep te bereiken.

Voorbeeld


oServer.WriteData('guid', 'My First sgcWebSockets Message!.');

Overload 2

Syntaxis

function WriteData(const aGuid: String; aStream: TStream; aSize: Integer = 0; const aStreaming: TwsStreaming = stmNone) : Boolean;

Parameters

NaamTypeBeschrijving
aGuidconst StringID van de doelverbinding zoals toegewezen door de proxy toen de client-handshake werd voltooid.
aStreamTStreamBronstream waarvan de inhoud als een WebSocket-binair frame naar de client wordt verzonden. De aanroeper blijft eigenaar van de stream.
aSizeIntegerOptionele fragmentgrootte in bytes; wanneer groter dan nul, wordt de stream opgesplitst in meerdere fragmenten van deze grootte. Gebruik 0 (de standaard) om de volledige stream als één frame te verzenden.
aStreamingconst TwsStreamingStreamingmodus voor gefragmenteerde overdracht (stmNone, stmStart, stmContinue, stmFinish). Standaard stmNone, waarmee een volledig zelfstandig bericht wordt verzonden.

Retourwaarde

True wanneer een verbinding met de opgegeven GUID is gevonden en de stream is overgedragen aan de bijbehorende socket; False wanneer er geen overeenkomende actieve verbinding bestaat. (Boolean)

Opmerkingen

Deze overload richt zich op één WebSocket-client aan de browserzijde van de proxy met een binaire payload gelezen uit de meegeleverde stream. De stream wordt verbruikt vanaf de huidige positie en de server neemt geen eigendom over, dus de aanroeper moet deze actief houden totdat WriteData retourneert. De upstream-TCP-verbinding die aan deze GUID is gekoppeld, wordt hier niet naar geschreven; de bytes worden alleen geleverd aan de WebSocket-peer. Gebruik aSize samen met aStreaming bij het verzenden van zeer grote payloads die over meerdere WebSocket-frames moeten worden gefragmenteerd.

Voorbeeld


oStream := TMemoryStream.Create;
try
  oStream.LoadFromFile('payload.bin');
  oServer.WriteData('guid', oStream);
finally
  oStream.Free;
end;

Terug naar methoden