TsgcWebSocketServer › Eventi › OnSendBufferFull
Si attiva quando la coda in uscita di una connessione client ha raggiunto QueueOptions.MaxQueueSize, prima che venga applicata la politica di overflow.
property OnSendBufferFull: TsgcWSSendBufferFullEvent;
// TsgcWSSendBufferFullEvent = procedure(Connection: TsgcWSConnection; const QueueSize: Integer; var DropMessage: Boolean) of object
—
Si attiva solo quando l'accodamento dei messaggi è attivo e QueueOptions.MaxQueueSize è maggiore di zero: ogni volta che un messaggio sta per essere accodato per una connessione la cui coda contiene già MaxQueueSize messaggi, questo evento viene generato con la Connection interessata e il valore corrente di QueueSize. DropMessage arriva come True; lasciarlo invariato per consentire a QueueOptions.OverflowPolicy di decidere cosa accade (qopDropOldest scarta il messaggio accodato più vecchio, qopDropNewest scarta il nuovo messaggio, qopDisconnect lo scarta e chiude la connessione), oppure impostarlo su False per accettare comunque il messaggio e lasciare che la coda superi il limite. Utilizzare questo evento per rilevare i consumatori lenti prima che esauriscano la memoria del server.
procedure OnSendBufferFull(Connection: TsgcWSConnection; const QueueSize: Integer;
var DropMessage: Boolean);
begin
WriteLn('#slow consumer ' + Connection.Guid + ': ' + IntToStr(QueueSize) + ' messages queued');
end;