TsgcWebSocketServer_HTTPAPI事件 › OnFragmented

OnFragmented 事件

当接收到消息的分片时触发(仅当 Options.FragmentedMessages 为 frgAll 或 frgOnlyFragmented 时)。

语法

property OnFragmented: TsgcWSFragmentedEvent;
// TsgcWSFragmentedEvent = procedure(Connection: TsgcWSConnection; const Data: TMemoryStream; const OpCode: TOpCode; const Continuation: Boolean) of object

默认值

备注

默认情况下(Options.FragmentedMessages = frgOnlyBuffer),服务器会缓冲消息的各个片段,并在接收完整负载后触发 OnMessage 或 OnBinary。将 FragmentedMessages 设置为 frgOnlyFragmented,则每个片段只接收 OnFragmented;设置为 frgAll,则每个片段接收 OnFragmented,消息完整后再接收 OnMessage/OnBinary。Data 参数是包含当前片段字节的 TMemoryStream,OpCode 表示原始帧类型(文本、二进制、续传等),Continuation 为 True 表示还有更多片段,最后一个片段时为 False。此事件可用于报告大文件上传的进度。

示例


procedure OnFragmented(Connection: TsgcWSConnection; const Data: TMemoryStream;
  const OpCode: TOpCode; const Continuation: Boolean);
begin
  ShowProgress(Data.Size);
  if not Continuation then
    SaveStream(Data);
end;

返回事件