TsgcWebSocketServer | Ricezione messaggio binario dal server

Quando il server 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 server utilizza il metodo neAsynchronous per generare 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 server riceve molti messaggi o si ha la necessità di controllare la sincronizzazione con altri thread, impostare la proprietà NotifyEvents su neNoSync; ciò significa che l'evento OnMessage verrà eseguito nel contesto del thread di connessione; pertanto, se si desidera aggiornare qualsiasi controllo di un form o accedere a oggetti condivisi, è necessario implementare i propri metodi di sincronizzazione.