TsgcWebSocketServer이벤트 › OnSendBufferFull

OnSendBufferFull 이벤트

클라이언트 연결의 송신 큐가 QueueOptions.MaxQueueSize에 도달했을 때 오버플로 정책이 적용되기 전에 발생합니다.

구문

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

기본값

설명

메시지 큐잉이 활성화되어 있고 QueueOptions.MaxQueueSize가 0보다 클 때만 발생합니다. 큐에 이미 MaxQueueSize개의 메시지가 들어 있는 연결에 메시지를 큐에 추가하려고 할 때마다 영향을 받는 Connection 및 현재 QueueSize와 함께 이 이벤트가 발생합니다. DropMessageTrue로 전달됩니다. 그대로 두면 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;

이벤트로 돌아가기