TsgcWebSocketServer | Servidor Recebe Mensagem Binária

Quando o servidor 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 servidor utiliza o método neAsynchronous para despachar o evento OnMessage, o que significa que este evento é executado no contexto da Thread Principal, portanto é thread-safe atualizar qualquer controle de um form, por exemplo.

 

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