TsgcWebSocketServer › Gebeurtenissen › OnSendBufferFull
Wordt geactiveerd wanneer de uitgaande wachtrij van een clientverbinding QueueOptions.MaxQueueSize heeft bereikt, voordat het overloopbeleid wordt toegepast.
property OnSendBufferFull: TsgcWSSendBufferFullEvent;
// TsgcWSSendBufferFullEvent = procedure(Connection: TsgcWSConnection; const QueueSize: Integer; var DropMessage: Boolean) of object
—
Wordt alleen geactiveerd wanneer berichtwachtrijen actief zijn en QueueOptions.MaxQueueSize groter is dan nul: telkens wanneer een bericht op het punt staat in de wachtrij te worden geplaatst voor een verbinding waarvan de wachtrij al MaxQueueSize berichten bevat, wordt deze gebeurtenis gegenereerd met de betrokken Connection en de huidige QueueSize. DropMessage komt binnen als True; laat dit ongewijzigd om QueueOptions.OverflowPolicy te laten beslissen wat er gebeurt (qopDropOldest verwerpt het oudste bericht in de wachtrij, qopDropNewest verwerpt het nieuwe bericht, qopDisconnect verwerpt het en sluit de verbinding), of zet het op False om het bericht toch te accepteren en de wachtrij voorbij de limiet te laten groeien. Gebruik deze gebeurtenis om trage consumenten te detecteren voordat ze het servergeheugen uitputten.
procedure OnSendBufferFull(Connection: TsgcWSConnection; const QueueSize: Integer;
var DropMessage: Boolean);
begin
WriteLn('#slow consumer ' + Connection.Guid + ': ' + IntToStr(QueueSize) + ' messages queued');
end;