TsgcWebSocketProxyServer › Événements › OnBinary

OnBinary Événement

Se déclenche chaque fois qu'un client WebSocket en aval envoie un message binaire, avant que le proxy ne le transmette en amont.

Syntaxe

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

Valeur par défaut

—

Remarques

OnBinary est déclenché une fois qu'une charge utile binaire complète a été reçue et mise en mémoire tampon depuis un client WebSocket en aval. Le paramètre Data expose les octets décodés sous forme de TMemoryStream positionné à 0 ; lisez-le dans le gestionnaire car le flux appartient au serveur et devient invalide après le retour du gestionnaire. Le proxy transmet cette charge utile au serveur TCP en amont (Proxy.Host, Proxy.Port) juste après le retour du gestionnaire, c'est donc un endroit pratique pour inspecter ou journaliser le frame avant qu'il ne soit transféré. Par défaut, NotifyEvents est neAsynchronous, donc OnBinary est synchronisé avec le thread principal et il est sûr de toucher les contrôles d'interface ; passez à neNoSync pour distribuer sur le thread de connexion lorsque le débit est important. Si Options.FragmentedMessages est frgOnlyFragmented, l'événement n'est pas déclenché et OnFragmented est utilisé à la place.

Exemple


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;

Retour aux événements