Quando il client riceve un Messaggio Binario, viene generato l'evento OnBinary. Leggere il parametro Data per recuperare il messaggio binario ricevuto.
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;
Per impostazione predefinita, il client
utilizza il metodo neAsynchronous per
inviare l'evento OnMessage, il che significa che questo
evento viene eseguito nel contesto del Thread Principale, quindi è thread-safe
aggiornare qualsiasi controllo di un form, ad esempio.
Se il tuo client
riceve molti messaggi o hai bisogno di controllare la sincronizzazione con
altri thread, imposta la proprietà NotifyEvents su neNoSync,
questo significa che l'evento OnMessage verrà eseguito
nel contesto del thread di connessione, quindi se hai bisogno di aggiornare
qualsiasi controllo di una form o accedere a oggetti condivisi, devi implementare i tuoi
propri metodi di sincronizzazione.