TsgcWebSocketClientEventos › OnSendBufferFull

OnSendBufferFull Evento

Disparado quando a fila de mensagens de saída atinge QueueOptions.MaxQueueSize, antes de a política de estouro ser aplicada.

Sintaxe

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

Valor Padrão

Observações

Só é disparado quando o enfileiramento de mensagens está ativo e QueueOptions.MaxQueueSize é maior que zero: toda vez que uma mensagem está prestes a ser enfileirada enquanto a fila já contém MaxQueueSize mensagens, este evento é disparado com o QueueSize atual. DropMessage chega como True; deixe-o inalterado para que QueueOptions.OverflowPolicy decida o que acontece (qopDropOldest descarta a mensagem enfileirada mais antiga, qopDropNewest descarta a nova mensagem, qopDisconnect a descarta e fecha a conexão), ou defina-o como False para aceitar a mensagem mesmo assim e permitir que a fila cresça além do limite. Use este evento para detectar backpressure, por exemplo, para pausar produtores ou registrar condições de consumidores lentos.

Exemplo


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

Voltar para Eventos