TsgcWebSocketServer事件 › OnSendBufferFull

OnSendBufferFull 事件

当客户端连接的出站队列达到 QueueOptions.MaxQueueSize 时、在应用溢出策略之前触发。

语法

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

默认值

备注

仅当消息排队处于活动状态且 QueueOptions.MaxQueueSize 大于零时才会触发:每当有消息即将加入某个连接的队列、而该连接的队列已包含 MaxQueueSize 条消息时,就会触发此事件,并传入受影响的 Connection 和当前的 QueueSizeDropMessage 传入时为 True;保持不变则由 QueueOptions.OverflowPolicy 决定后续行为(qopDropOldest 丢弃队列中最旧的消息,qopDropNewest 丢弃新消息,qopDisconnect 丢弃新消息并关闭连接);将其设置为 False 则仍然接受该消息,允许队列超出限制继续增长。使用此事件可在慢速消费者耗尽服务器内存之前检测到它们。

示例


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

返回事件