TsgcWebSocketClientOlaylar › OnSendBufferFull

OnSendBufferFull Olay

Giden ileti kuyruğu QueueOptions.MaxQueueSize değerine ulaştığında, taşma ilkesi uygulanmadan önce tetiklenir.

Sözdizimi

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

Varsayılan Değer

Remarks

Yalnızca ileti kuyruklama etkinken ve QueueOptions.MaxQueueSize sıfırdan büyükken tetiklenir: kuyruk hâlihazırda MaxQueueSize ileti içerirken bir ileti kuyruğa eklenmek üzereyken, bu olay 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. Geri basıncı (backpressure) tespit etmek için bu olayı kullanın; örneğin üreticileri duraklatmak veya yavaş tüketici durumlarını günlüğe kaydetmek için.

Örnek


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

Olaylara Dön