TsgcWebSocketServerEreignisse › OnSendBufferFull

OnSendBufferFull Ereignis

Wird ausgelöst, wenn die ausgehende Warteschlange einer Client-Verbindung QueueOptions.MaxQueueSize erreicht hat, bevor die Überlauf-Richtlinie angewendet wird.

Syntax

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

Standardwert

Hinweise

Wird nur ausgelöst, wenn die Nachrichten-Warteschlange aktiv ist und QueueOptions.MaxQueueSize größer als null ist: Jedes Mal, wenn eine Nachricht für eine Verbindung eingereiht werden soll, deren Warteschlange bereits MaxQueueSize Nachrichten enthält, wird dieses Ereignis mit der betroffenen Connection und der aktuellen QueueSize ausgelöst. DropMessage kommt als True an; lassen Sie es unverändert, damit QueueOptions.OverflowPolicy entscheidet, was geschieht (qopDropOldest verwirft die älteste eingereihte Nachricht, qopDropNewest verwirft die neue Nachricht, qopDisconnect verwirft sie und schließt die Verbindung), oder setzen Sie es auf False, um die Nachricht dennoch anzunehmen und die Warteschlange über das Limit hinaus wachsen zu lassen. Verwenden Sie dieses Ereignis, um langsame Verbraucher zu erkennen, bevor sie den Serverspeicher erschöpfen.

Beispiel


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

Zurück zu Ereignissen