TsgcWebSocketServer_HTTPAPI › 事件 › OnBinary
每次客户端发送二进制消息且服务器收到时触发。
property OnBinary: TsgcWSBinaryEvent;
// TsgcWSBinaryEvent = procedure(Connection: TsgcWSConnection; const Data: TMemoryStream) of object
—
当从客户端接收并缓冲完整的二进制负载后,触发 OnBinary。Data 参数将解码后的字节以 TMemoryStream 的形式(定位于 0)公开;请在处理程序内读取它,因为该流由服务器拥有,处理程序返回后即失效。事件在处理传入 HTTP.SYS WebSocket 帧的 IOCP 工作线程上运行,因此在触碰 UI 控件之前需要切换到主线程。如果 Options.FragmentedMessages 为 frgOnlyFragmented,则不会触发此事件,而是使用 OnFragmented。
procedure OnBinary(Connection: TsgcWSConnection; const Data: TMemoryStream);
var
oBitmap: TBitmap;
begin
oBitmap := TBitmap.Create;
try
oBitmap.LoadFromStream(Data);
Image1.Picture.Assign(oBitmap);
finally
FreeAndNil(oBitmap);
end;
end;