TsgcWebSocketClient | Receive Binary Messages

Quando o cliente recebe uma Mensagem Binária, o evento OnBinary é disparado. Leia o parâmetro Data para recuperar a mensagem binária recebida.


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;

Por padrão, o cliente utiliza o método neAsynchronous para despachar o evento OnMessage, isso significa que este evento é executado no contexto da Thread Principal, portanto é thread-safe atualizar qualquer controle de um formulário, por exemplo.

 

Se o seu cliente recebe muitas mensagens ou você precisa controlar a sincronização com outras threads, defina a propriedade NotifyEvents como neNoSync, isso significa que o evento OnMessage será executado no contexto da thread de conexão, portanto, se você precisar atualizar qualquer controle de um formulário ou acessar objetos compartilhados, deve implementar seus próprios métodos de sincronização.