TsgcWebSocketProxyServer › Metody › WriteData
Wysyła wiadomość do pojedynczego klienta WebSocket na serwerze proxy, identyfikowanego przez identyfikator GUID połączenia.
function WriteData(const aGuid, aMessage: string): Boolean;
| Nazwa | Typ | Opis |
|---|---|---|
aGuid | const string | Identyfikator docelowego połączenia przypisany przez proxy po zakończeniu uzgadniania z klientem. |
aMessage | const string | Ładunek tekstowy dostarczany do tego klienta jako ramka tekstowa WebSocket. |
True, gdy połączenie o podanym identyfikatorze GUID zostało odnalezione i ramka została przekazana do jego gniazda; False, gdy nie istnieje pasujące aktywne połączenie. (Boolean)
To przeciążenie wyszukuje połączenie WebSocket, którego identyfikator GUID pasuje do aGuid, i wysyła wiadomość tekstową do tego jednego klienta po stronie przeglądarki tunelu. Identyfikator GUID jest wartością udostępnianą przez TsgcWSConnection.Guid, zazwyczaj przechwytywaną w zdarzeniu OnConnect i zapisywaną przez aplikację. Sparowane łącze TCP nadrzędne nie jest przez to wywołanie zapisywane; użyj go do przesyłania danych z proxy do klienta przeglądarkowego bez przekierowywania bajtów przez serwer TCP zaplecza. Użyj metody Broadcast, aby dotrzeć do wszystkich aktywnych klientów WebSocket jednym wywołaniem.
oServer.WriteData('guid', 'My First sgcWebSockets Message!.');
function WriteData(const aGuid: String; aStream: TStream; aSize: Integer = 0; const aStreaming: TwsStreaming = stmNone) : Boolean;
| Nazwa | Typ | Opis |
|---|---|---|
aGuid | const String | Identyfikator docelowego połączenia przypisany przez proxy po zakończeniu uzgadniania z klientem. |
aStream | TStream | Strumień źródłowy, którego zawartość jest wysyłana do klienta jako binarny ramka WebSocket. Właścicielem strumienia pozostaje wywołujący. |
aSize | Integer | Opcjonalny rozmiar fragmentu w bajtach; gdy jest większy od zera, strumień jest dzielony na wiele fragmentów o tym rozmiarze. Wartość 0 (domyślna) powoduje wysłanie całego strumienia jako pojedynczej ramki. |
aStreaming | const TwsStreaming | Tryb strumieniowania dla pofragmentowanej transmisji (stmNone, stmStart, stmContinue, stmFinish). Domyślnie stmNone, co wysyła kompletną, samodzielną wiadomość. |
True, gdy znaleziono połączenie o podanym GUID i strumień został przekazany do jego gniazda; False, gdy nie istnieje pasujące aktywne połączenie. (Boolean)
To przeciążenie kieruje do pojedynczego klienta WebSocket po stronie przeglądarki serwera proxy binarny ładunek odczytany z dostarczonego strumienia. Strumień jest konsumowany od bieżącej pozycji, a serwer nie przejmuje jego własności, dlatego wywołujący musi utrzymywać go przy życiu do momentu zwrócenia WriteData. Nadrzędne połączenie TCP skojarzone z tym identyfikatorem GUID nie jest tutaj zapisywane; bajty są dostarczane wyłącznie do zdalnego węzła WebSocket. Należy użyć aSize razem z aStreaming przy wysyłaniu bardzo dużych ładunków, które powinny być podzielone na wiele ramek WebSocket.
oStream := TMemoryStream.Create;
try
oStream.LoadFromFile('payload.bin');
oServer.WriteData('guid', oStream);
finally
oStream.Free;
end;