TsgcWebSocketServer › Olaylar › OnSendBufferFull
Bir istemci bağlantısının giden kuyruğu QueueOptions.MaxQueueSize değerine ulaştığında, taşma ilkesi uygulanmadan önce tetiklenir.
property OnSendBufferFull: TsgcWSSendBufferFullEvent;
// TsgcWSSendBufferFullEvent = procedure(Connection: TsgcWSConnection; const QueueSize: Integer; var DropMessage: Boolean) of object
—
Yalnızca ileti kuyruklama etkinken ve QueueOptions.MaxQueueSize sıfırdan büyükken tetiklenir: kuyruğunda hâlihazırda MaxQueueSize ileti bulunan bir bağlantı için bir ileti kuyruğa eklenmek üzereyken, bu olay etkilenen Connection ve geçerli QueueSize ile birlikte tetiklenir. DropMessage True olarak gelir; ne olacağına QueueOptions.OverflowPolicy'nin karar vermesi için değiştirmeden bırakın (qopDropOldest kuyruktaki en eski iletiyi atar, qopDropNewest yeni iletiyi atar, qopDisconnect iletiyi atar ve bağlantıyı kapatır) veya iletiyi yine de kabul edip kuyruğun sınırın ötesine büyümesine izin vermek için False olarak ayarlayın. Yavaş tüketicileri sunucu belleğini tüketmeden önce tespit etmek için bu olayı kullanın.
procedure OnSendBufferFull(Connection: TsgcWSConnection; const QueueSize: Integer;
var DropMessage: Boolean);
begin
WriteLn('#slow consumer ' + Connection.Guid + ': ' + IntToStr(QueueSize) + ' messages queued');
end;