TsgcWebSocketProxyServer › Eventos › OnBinary
Dispara toda vez que um cliente WebSocket downstream envia uma mensagem binária, antes de o proxy encaminhá-la upstream.
property OnBinary: TsgcWSBinaryEvent;
// TsgcWSBinaryEvent = procedure(Connection: TsgcWSConnection; const Data: TMemoryStream) of object
—
OnBinary é gerado quando uma carga útil binária completa é recebida e armazenada em buffer de um cliente WebSocket downstream. O parâmetro Data expõe os bytes decodificados como um TMemoryStream posicionado em 0; leia-o dentro do manipulador porque o stream é de propriedade do servidor e torna-se inválido após o manipulador retornar. O proxy retransmite esta carga útil para o servidor TCP upstream (Proxy.Host, Proxy.Port) logo após o manipulador retornar, portanto é um local conveniente para inspecionar ou registrar o frame antes de ser encaminhado. Por padrão NotifyEvents é neAsynchronous, então OnBinary é sincronizado com a main thread e é seguro tocar em controles de interface; mude para neNoSync para despachar na thread de conexão quando a vazão for importante. Se Options.FragmentedMessages for frgOnlyFragmented, o evento não é gerado e OnFragmented é utilizado em seu lugar.
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;