TsgcWebSocketServer › Eventos › OnSendBufferFull
Se dispara cuando la cola de salida de una conexión de cliente ha alcanzado QueueOptions.MaxQueueSize, antes de que se aplique la política de desbordamiento.
property OnSendBufferFull: TsgcWSSendBufferFullEvent;
// TsgcWSSendBufferFullEvent = procedure(Connection: TsgcWSConnection; const QueueSize: Integer; var DropMessage: Boolean) of object
—
Solo se dispara cuando la cola de mensajes está activa y QueueOptions.MaxQueueSize es mayor que cero: cada vez que un mensaje está a punto de encolarse para una conexión cuya cola ya contiene MaxQueueSize mensajes, este evento se dispara con la Connection afectada y el QueueSize actual. DropMessage llega como True; déjelo sin cambios para que QueueOptions.OverflowPolicy decida qué ocurre (qopDropOldest descarta el mensaje encolado más antiguo, qopDropNewest descarta el mensaje nuevo, qopDisconnect lo descarta y cierra la conexión), o establézcalo en False para aceptar el mensaje de todos modos y permitir que la cola crezca más allá del límite. Utilice este evento para detectar consumidores lentos antes de que agoten la memoria del servidor.
procedure OnSendBufferFull(Connection: TsgcWSConnection; const QueueSize: Integer;
var DropMessage: Boolean);
begin
WriteLn('#slow consumer ' + Connection.Guid + ': ' + IntToStr(QueueSize) + ' messages queued');
end;