TsgcWebSocketProxyServer › Gebeurtenissen › OnBinary
Wordt geactiveerd telkens wanneer een downstream WebSocket-client een binair bericht verstuurt, voordat de proxy het doorstuurt naar upstream.
property OnBinary: TsgcWSBinaryEvent;
// TsgcWSBinaryEvent = procedure(Connection: TsgcWSConnection; const Data: TMemoryStream) of object
—
OnBinary wordt geactiveerd zodra een volledig binair payload is ontvangen en gebufferd van een downstream WebSocket-client. De Data-parameter stelt de gedecodeerde bytes beschikbaar als een TMemoryStream gepositioneerd op 0; lees het binnen de handler omdat de stream eigendom is van de server en ongeldig wordt nadat de handler terugkeert. De proxy stuurt deze payload door naar de upstream TCP-server (Proxy.Host, Proxy.Port) direct nadat de handler terugkeert, dus het is een handige plek om het frame te inspecteren of te loggen voordat het wordt doorgestuurd. Standaard is NotifyEvents neAsynchronous, zodat OnBinary is gesynchroniseerd met de hoofdthread en het veilig is om UI-besturingselementen aan te raken; schakel over naar neNoSync om op de verbindingsthread te verwerken wanneer doorvoer belangrijk is. Als Options.FragmentedMessages frgOnlyFragmented is, wordt de gebeurtenis niet geactiveerd en wordt OnFragmented gebruikt.
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;