TsgcWebSocketServer › Zdarzenia › OnBinary
Wywoływane za każdym razem, gdy klient wyśle wiadomość binarną, a serwer ją odbierze.
property OnBinary: TsgcWSBinaryEvent;
// TsgcWSBinaryEvent = procedure(Connection: TsgcWSConnection; const Data: TMemoryStream) of object
—
OnBinary jest wywoływane po odebraniu i zbuforowaniu pełnego ładunku binarnego od klienta. Parametr Data udostępnia zdekodowane bajty jako TMemoryStream ustawiony na pozycji 0; należy go odczytać wewnątrz procedury obsługi, ponieważ strumień należy do serwera i staje się nieważny po powrocie z procedury obsługi. Domyślnie NotifyEvents ma wartość neAsynchronous, więc OnBinary jest synchronizowane z głównym wątkiem i bezpiecznie dotykać kontrolek interfejsu użytkownika; przełącz na neNoSync, aby wysyłać zdarzenia w wątku połączenia, gdy liczy się przepustowość. Jeśli Options.FragmentedMessages ma wartość frgOnlyFragmented, zdarzenie nie jest wywoływane i zamiast tego używane jest 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;