TsgcWebSocketProxyServer › Methoden › WriteData
Stuurt een bericht naar één WebSocket-client op de proxy geïdentificeerd door zijn verbindings-GUID.
function WriteData(const aGuid, aMessage: string): Boolean;
| Naam | Type | Beschrijving |
|---|---|---|
aGuid | const string | ID van de doelverbinding zoals toegewezen door de proxy toen de client-handshake werd voltooid. |
aMessage | const string | Tekstpayload om als WebSocket-tekstframe aan die client te bezorgen. |
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)
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.
oServer.WriteData('guid', 'My First sgcWebSockets Message!.');
function WriteData(const aGuid: String; aStream: TStream; aSize: Integer = 0; const aStreaming: TwsStreaming = stmNone) : Boolean;
| Naam | Type | Beschrijving |
|---|---|---|
aGuid | const String | ID van de doelverbinding zoals toegewezen door de proxy toen de client-handshake werd voltooid. |
aStream | TStream | Bronstream waarvan de inhoud als een WebSocket-binair frame naar de client wordt verzonden. De aanroeper blijft eigenaar van de stream. |
aSize | Integer | Optionele 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. |
aStreaming | const TwsStreaming | Streamingmodus voor gefragmenteerde overdracht (stmNone, stmStart, stmContinue, stmFinish). Standaard stmNone, waarmee een volledig zelfstandig bericht wordt verzonden. |
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)
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.
oStream := TMemoryStream.Create;
try
oStream.LoadFromFile('payload.bin');
oServer.WriteData('guid', oStream);
finally
oStream.Free;
end;