TsgcWebSocketClientEventos › OnSendBufferFull

OnSendBufferFull Evento

Se dispara cuando la cola de mensajes de salida ha alcanzado QueueOptions.MaxQueueSize, antes de que se aplique la política de desbordamiento.

Sintaxis

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

Valor Predeterminado

Observaciones

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 cuando la cola ya contiene MaxQueueSize mensajes, este evento se dispara con 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 contrapresión (backpressure), por ejemplo para pausar los productores o registrar situaciones de consumidores lentos.

Ejemplo


procedure OnSendBufferFull(Connection: TsgcWSConnection; const QueueSize: Integer;
  var DropMessage: Boolean);
begin
  WriteLn('#send buffer full: ' + IntToStr(QueueSize) + ' messages queued');
end;

Volver a Eventos