TsgcWebSocketClient | 接收二进制消息

当客户端收到二进制消息时,将触发 OnBinary 事件。读取 Data 参数以获取收到的二进制消息。


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;

默认情况下,客户端使用 neAsynchronous 方法分发 OnMessage 事件,这意味着此事件在主线程上下文中执行,因此更新表单控件等操作是线程安全的。

 

如果你的客户端 接收大量消息,或者你需要控制与 其他线程的同步,请将 NotifyEvents 属性设置为 neNoSync, 这意味着 OnMessage 事件将在连接线程的上下文中 执行,因此如果你需要更新 某个窗体的控件或访问共享对象,你必须实现自己 的同步方法。