TsgcWebSocketProxyServer › Methoden › WriteData

WriteData Methode

Sendet eine Nachricht an einen einzelnen WebSocket-Client auf dem Proxy, identifiziert durch seine Verbindungs-GUID.

Überladungen

Overload 1

Syntax

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

Parameter

NameTypBeschreibung
aGuidconst stringBezeichner der Zielverbindung, wie er vom Proxy beim Abschluss des Client-Handshakes zugewiesen wurde.
aMessageconst stringText-Payload, die diesem Client als WebSocket-Textframe zugestellt werden soll.

Rückgabewert

True, wenn eine Verbindung mit der angegebenen GUID gefunden wurde und der Frame an ihren Socket übergeben wurde; False, wenn keine übereinstimmende aktive Verbindung existiert. (Boolean)

Hinweise

Diese Überladung sucht die WebSocket-Verbindung, deren GUID mit aGuid übereinstimmt, und sendet die Textnachricht an diesen einzelnen Client auf der browserseitigen Seite des Tunnels. Die GUID ist der von TsgcWSConnection.Guid bereitgestellte Wert, der typischerweise in OnConnect erfasst und von der Anwendung gespeichert wird. Der gekoppelte Upstream-TCP-Link wird von diesem Aufruf nicht beschrieben; verwenden Sie ihn, um Daten vom Proxy an den Browser-Client zu pushen, ohne die Bytes durch den Backend-TCP-Server zu leiten. Verwenden Sie Broadcast, um jeden aktiven WebSocket-Client in einem Aufruf zu erreichen.

Beispiel


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

Überladung 2

Syntax

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

Parameter

NameTypBeschreibung
aGuidconst StringBezeichner der Zielverbindung, wie er vom Proxy beim Abschluss des Client-Handshakes zugewiesen wurde.
aStreamTStreamQuellstream, dessen Inhalt als binärer WebSocket-Frame an den Client gesendet wird. Der Aufrufer bleibt Eigentümer des Streams.
aSizeIntegerOptionale Fragmentgröße in Bytes; wenn größer als null, wird der Stream in mehrere Fragmente dieser Größe aufgeteilt. Verwenden Sie 0 (Standard), um den gesamten Stream als einzelnen Frame zu senden.
aStreamingconst TwsStreamingStreaming-Modus für die fragmentierte Übertragung (stmNone, stmStart, stmContinue, stmFinish). Standard ist stmNone, was eine vollständige eigenständige Nachricht sendet.

Rückgabewert

True, wenn eine Verbindung mit der angegebenen GUID gefunden und der Stream an deren Socket übergeben wurde; False, wenn keine passende aktive Verbindung existiert. (Boolean)

Hinweise

Diese Überladung richtet sich an einen einzelnen WebSocket-Client auf der browserzugewandten Seite des Proxys mit einer binären Nutzlast, die aus dem bereitgestellten Stream gelesen wird. Der Stream wird ab seiner aktuellen Position konsumiert, und der Server übernimmt nicht den Besitz, sodass der Aufrufer ihn am Leben erhalten muss, bis WriteData zurückkehrt. Die mit dieser GUID verknüpfte vorgelagerte TCP-Verbindung wird hier nicht beschrieben; die Bytes werden nur an den WebSocket-Peer übermittelt. Verwenden Sie aSize zusammen mit aStreaming, wenn Sie sehr große Nutzlasten senden, die über mehrere WebSocket-Frames fragmentiert werden sollen.

Beispiel


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

Zurück zu Methoden