TsgcWebSocketProxyServer › Zdarzenia › OnBinary
Wywoływane za każdym razem, gdy klient WebSocket podrzędny wysyła wiadomość binarną, przed jej przekazaniem przez proxy do serwera nadrzędnego.
property OnBinary: TsgcWSBinaryEvent;
// TsgcWSBinaryEvent = procedure(Connection: TsgcWSConnection; const Data: TMemoryStream) of object
—
Zdarzenie OnBinary jest wywoływane po odebraniu i zbuforowaniu pełnego binarnego ładunku od klienta WebSocket znajdującego się poniżej. Parametr Data udostępnia zdekodowane bajty jako TMemoryStream ustawiony na pozycji 0; należy go odczytać wewnątrz modułu obsługi, ponieważ strumień jest własnością serwera i staje się nieważny po powrocie z modułu obsługi. Serwer proxy przekazuje ten ładunek do nadrzędnego serwera TCP (Proxy.Host, Proxy.Port) zaraz po powrocie z modułu obsługi, co czyni go wygodnym miejscem do inspekcji lub rejestrowania ramki przed jej przekazaniem. Domyślnie NotifyEvents ma wartość neAsynchronous, więc zdarzenie OnBinary jest synchronizowane z wątkiem głównym i można bezpiecznie dotykać kontrolek interfejsu użytkownika; należy przełączyć na neNoSync, aby wysyłanie odbywało się w wątku połączenia, gdy przepustowość ma znaczenie. Jeśli opcja Options.FragmentedMessages ma wartość frgOnlyFragmented, zdarzenie nie jest wywoływane i zamiast niego używane jest zdarzenie OnFragmented.
procedure OnBinary(Connection: TsgcWSConnection; const Data: TMemoryStream);
var
oBitmap: TBitmap;
begin
oBitmap := TBitmap.Create;
try
oBitmap.LoadFromStream(Data);
Image1.Picture.Assign(oBitmap);
finally
FreeAndNil(oBitmap);
end;
end;