TsgcWebSocketHTTPServer › Methoden › WriteData
Verstuurt een WebSocket-bericht naar één client geïdentificeerd door zijn verbindings-GUID.
function WriteData(const aGuid, aMessage: string): Boolean;
| Naam | Type | Beschrijving |
|---|---|---|
aGuid | const string | Identifier van de doelverbinding zoals toegewezen door de server na voltooiing van de client-handshake. |
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. De GUID is de waarde die wordt weergegeven door TsgcWSConnection.Guid, doorgaans vastgelegd in OnConnect en opgeslagen door de toepassing. Alleen geüpgradede WebSocket-sessies komen in aanmerking; GUID's die tot pure HTTP-verzoeken behoren, worden afgewezen en False wordt geretourneerd. Wanneer QueueOptions.Text is ingesteld op een andere waarde dan qmNone, wordt het frame in de wachtrij geplaatst en verzonden vanuit de verbindingsthread in plaats van de thread van de aanroeper (niet ondersteund wanneer IOHandlerOptions.IOHandlerType = iohIOCP). Gebruik Broadcast om elke actieve 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 | Identifier van de doelverbinding zoals toegewezen door de server na voltooiing van de client-handshake. |
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 met een binaire payload gelezen uit de opgegeven stream. De stream wordt verbruikt vanaf de huidige positie en de server neemt geen eigendom over, dus de aanroeper moet hem actief houden totdat WriteData terugkeert (of, bij het in de wachtrij plaatsen, totdat het verzenden is voltooid). Wanneer QueueOptions.Binary is ingesteld op een andere waarde dan qmNone, wordt het frame in de wachtrij geplaatst en verzonden vanuit de verbindingsthread in plaats van de thread van de aanroeper (niet ondersteund wanneer IOHandlerOptions.IOHandlerType = iohIOCP). 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;