TsgcWebSocketClient › Zdarzenia › OnSendBufferFull
Uruchamiane, gdy kolejka wiadomości wychodzących osiągnie QueueOptions.MaxQueueSize, zanim zostanie zastosowana polityka przepełnienia.
property OnSendBufferFull: TsgcWSSendBufferFullEvent;
// TsgcWSSendBufferFullEvent = procedure(Connection: TsgcWSConnection; const QueueSize: Integer; var DropMessage: Boolean) of object
—
Uruchamiane tylko wtedy, gdy kolejkowanie wiadomości jest aktywne, a QueueOptions.MaxQueueSize jest większe od zera: za każdym razem, gdy wiadomość ma zostać dodana do kolejki, która zawiera już MaxQueueSize wiadomości, zdarzenie jest wywoływane z bieżącą wartością QueueSize. DropMessage przychodzi jako True; pozostawienie go bez zmian pozwala QueueOptions.OverflowPolicy zdecydować, co się stanie (qopDropOldest odrzuca najstarszą wiadomość z kolejki, qopDropNewest odrzuca nową wiadomość, qopDisconnect odrzuca ją i zamyka połączenie); ustawienie go na False powoduje mimo wszystko przyjęcie wiadomości i pozwala kolejce przekroczyć limit. To zdarzenie służy do wykrywania przeciążenia (backpressure), na przykład do wstrzymywania producentów lub rejestrowania sytuacji z powolnymi konsumentami.
procedure OnSendBufferFull(Connection: TsgcWSConnection; const QueueSize: Integer;
var DropMessage: Boolean);
begin
WriteLn('#send buffer full: ' + IntToStr(QueueSize) + ' messages queued');
end;