TsgcWebSocketHTTPServer › Eventos › OnSendBufferFull

OnSendBufferFull Evento

Se dispara cuando la cola de salida de una conexión WebSocket 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 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. Las solicitudes HTTP simples no se encolan, por lo que solo las conexiones WebSocket lo generan.

Ejemplo


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

Volver a Eventos