TsgcWebSocketServerZdarzenia › OnSendBufferFull

OnSendBufferFull Zdarzenie

Uruchamiane, gdy kolejka wychodząca połączenia klienckiego osiągnie QueueOptions.MaxQueueSize, zanim zostanie zastosowana polityka przepełnienia.

Składnia

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

Wartość domyślna

Uwagi

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 połączenia, którego kolejka zawiera już MaxQueueSize wiadomości, zdarzenie jest wywoływane z danym połączeniem Connection i 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 powolnych konsumentów, zanim wyczerpią oni pamięć serwera.

Przykład


procedure OnSendBufferFull(Connection: TsgcWSConnection; const QueueSize: Integer;
  var DropMessage: Boolean);
begin
  WriteLn('#slow consumer ' + Connection.Guid + ': ' + IntToStr(QueueSize) + ' messages queued');
end;

Powrót do Zdarzeń