TsgcWebSocketClient | Receive Binary Messages

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.