TsgcWebSocketClient | Recevoir des messages binaires

Lorsque le client reçoit un message binaire, l'événement OnBinary est déclenché. Lisez le paramètre Data pour récupérer le message binaire reçu.


procedure OnBinary(Connection: TsgcWSConnection; const Data: TMemoryStream);
var
  oBitmap: TBitmap;
begin
  oBitmap := TBitmap.Create;
  Try
    oBitmap.LoadFromStream(Data);
    Image1.Picture.Assign(oBitmap);
    Log(
      '#image uncompressed size: ' + IntToStr(Data.Size) +
      '. Total received: ' + IntToStr(Connection.RecBytes));
  Finally
    FreeAndNil(oBitmap);
  End;
end;

Par défaut, le client utilise la méthode neAsynchronous pour distribuer l'événement OnMessage, ce qui signifie que cet événement est exécuté dans le contexte du thread principal, il est donc thread-safe pour mettre à jour n'importe quel contrôle d'un formulaire par exemple.

 

Si votre client reçoit beaucoup de messages ou si vous avez besoin de contrôler la synchronisation avec d'autres threads, définissez la propriété NotifyEvents sur neNoSync, cela signifie que l'événement OnMessage sera exécuté dans le contexte du thread de connexion, donc si vous devez mettre à jour un contrôle d'un formulaire ou accéder à des objets partagés, vous devez implémenter vos propres méthodes de synchronisation.