TsgcWebSocketClient › Ereignisse › OnSendBufferFull
Wird ausgelöst, wenn die ausgehende Nachrichten-Warteschlange QueueOptions.MaxQueueSize erreicht hat, bevor die Überlauf-Richtlinie angewendet wird.
property OnSendBufferFull: TsgcWSSendBufferFullEvent;
// TsgcWSSendBufferFullEvent = procedure(Connection: TsgcWSConnection; const QueueSize: Integer; var DropMessage: Boolean) of object
—
Wird nur ausgelöst, wenn die Nachrichten-Warteschlange aktiv ist und QueueOptions.MaxQueueSize größer als null ist: Jedes Mal, wenn eine Nachricht eingereiht werden soll, während die Warteschlange bereits MaxQueueSize Nachrichten enthält, wird dieses Ereignis mit 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 Gegendruck (Backpressure) zu erkennen, zum Beispiel um Produzenten zu pausieren oder Situationen mit langsamen Verbrauchern zu protokollieren.
procedure OnSendBufferFull(Connection: TsgcWSConnection; const QueueSize: Integer;
var DropMessage: Boolean);
begin
WriteLn('#send buffer full: ' + IntToStr(QueueSize) + ' messages queued');
end;