TsgcHTTPServer › 事件 › OnSendBufferFull

OnSendBufferFull 事件

当客户端连接的出站队列达到其配置上限时,在应用溢出策略之前触发。继承自共享服务器引擎;请参阅备注。

语法

property OnSendBufferFull: TsgcWSSendBufferFullEvent;
// TsgcWSSendBufferFullEvent = procedure(Connection: TsgcWSConnection; const QueueSize: Integer; var DropMessage: Boolean) of object

默认值

—

备注

OnSendBufferFull 属于整个 sgc 服务器组件共用的每连接出站队列机制:当排队功能启用且某个连接的队列已包含配置的最大消息数时,会触发此事件,并传入受影响的 Connection 和当前的 QueueSize,随后才会应用溢出策略(丢弃最旧、丢弃最新或断开连接)。TsgcHTTPServer 没有发布启用和配置此队列的属性,也从不通过它发送 WebSocket 消息,因此该事件实际上不会在此组件上触发;它仍保持已发布状态,以便与基于同一引擎构建的其他服务器组件保持接口兼容。DropMessage 传入时为 True,但由于触发此事件的条件在此不会出现,保持其不变没有可观察的效果。

示例


procedure OnSendBufferFull(Connection: TsgcWSConnection; const QueueSize: Integer;
  var DropMessage: Boolean);
begin
  WriteLn('#slow consumer ' + Connection.Guid + ': ' + IntToStr(QueueSize) + ' messages queued');
end;

返回事件