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.