TsgcWebSocketProxyServer › Eventos › OnBinary
Se activa cada vez que un cliente WebSocket descendente envía un mensaje binario, antes de que el proxy lo reenvíe en sentido ascendente.
property OnBinary: TsgcWSBinaryEvent;
// TsgcWSBinaryEvent = procedure(Connection: TsgcWSConnection; const Data: TMemoryStream) of object
—
OnBinary se genera una vez que se ha recibido y almacenado en búfer un payload binario completo de un cliente WebSocket de nivel inferior. El parámetro Data expone los bytes decodificados como un TMemoryStream posicionado en 0; léalo dentro del manejador porque el flujo es propiedad del servidor y deja de ser válido una vez que el manejador retorna. El proxy transmite este payload al servidor TCP de nivel superior (Proxy.Host, Proxy.Port) justo después de que el manejador retorna, por lo que es un lugar conveniente para inspeccionar o registrar el frame antes de que sea reenviado. De forma predeterminada, NotifyEvents es neAsynchronous, por lo que OnBinary se sincroniza con el hilo principal y es seguro acceder a controles de interfaz de usuario; cambie a neNoSync para despachar en el hilo de conexión cuando el rendimiento sea prioritario. Si Options.FragmentedMessages es frgOnlyFragmented, el evento no se genera y se usa OnFragmented en su 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;