TsgcWebSocketClient事件 › OnSendBufferFull

OnSendBufferFull 事件

当出站消息队列达到 QueueOptions.MaxQueueSize 时、在应用溢出策略之前触发。

语法

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

默认值

备注

仅当消息排队处于活动状态且 QueueOptions.MaxQueueSize 大于零时才会触发:每当有消息即将加入队列、而队列已包含 MaxQueueSize 条消息时,就会触发此事件,并传入当前的 QueueSizeDropMessage 传入时为 True;保持不变则由 QueueOptions.OverflowPolicy 决定后续行为(qopDropOldest 丢弃队列中最旧的消息,qopDropNewest 丢弃新消息,qopDisconnect 丢弃新消息并关闭连接);将其设置为 False 则仍然接受该消息,允许队列超出限制继续增长。使用此事件可检测背压,例如暂停生产者或记录慢速消费者的情况。

示例


procedure OnSendBufferFull(Connection: TsgcWSConnection; const QueueSize: Integer;
  var DropMessage: Boolean);
begin
  WriteLn('#send buffer full: ' + IntToStr(QueueSize) + ' messages queued');
end;

返回事件