TsgcWebSocketProxyServer › Olaylar › OnBinary
Bir aşağı yöndeki WebSocket istemcisi ikili bir mesaj gönderdiğinde, proxy onu yukarı yöne iletmeden önce her seferinde tetiklenir.
property OnBinary: TsgcWSBinaryEvent;
// TsgcWSBinaryEvent = procedure(Connection: TsgcWSConnection; const Data: TMemoryStream) of object
—
OnBinary, bir aşağı akış WebSocket istemcisinden tam bir ikili yük alınıp arabelleğe alındığında tetiklenir. Data parametresi, decode edilmiş baytları 0 konumunda bir TMemoryStream olarak sunar; stream sunucuya ait olduğu ve işleyici döndükten sonra geçersiz hale geldiği için onu işleyici içinde okuyun. Proxy bu yükü işleyici döndükten hemen sonra yukarı akış TCP sunucusuna (Proxy.Host, Proxy.Port) iletir, bu yüzden çerçeve iletilmeden önce onu incelemek veya günlüğe kaydetmek için uygun bir yerdir. Varsayılan olarak NotifyEvents neAsynchronous'tır, bu yüzden OnBinary ana iş parçacığıyla senkronize edilir ve UI kontrollerine dokunmak güvenlidir; verim önemli olduğunda bağlantı iş parçacığında dağıtmak için neNoSync'e geçin. Options.FragmentedMessages frgOnlyFragmented ise olay tetiklenmez ve bunun yerine OnFragmented kullanılır.
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;