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.