TsgcWebSocketProxyServer › Eventos › OnBinary

OnBinary Evento

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.

Sintaxis

property OnBinary: TsgcWSBinaryEvent;
// TsgcWSBinaryEvent = procedure(Connection: TsgcWSConnection; const Data: TMemoryStream) of object

Valor Predeterminado

—

Observaciones

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.

Ejemplo


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;

Volver a Eventos