TsgcWebSocketClientÉvénements › OnSendBufferFull

OnSendBufferFull Événement

Se déclenche lorsque la file d'attente de messages sortants a atteint QueueOptions.MaxQueueSize, avant que la politique de débordement ne soit appliquée.

Syntaxe

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

Valeur par défaut

Remarques

Ne se déclenche que lorsque la mise en file d'attente des messages est active et que QueueOptions.MaxQueueSize est supérieur à zéro : chaque fois qu'un message est sur le point d'être mis en file d'attente alors que la file contient déjà MaxQueueSize messages, cet événement se déclenche avec le QueueSize actuel. DropMessage arrive à True ; laissez-le inchangé pour laisser QueueOptions.OverflowPolicy décider de ce qui se passe (qopDropOldest supprime le message en file le plus ancien, qopDropNewest supprime le nouveau message, qopDisconnect le supprime et ferme la connexion), ou définissez-le à False pour accepter le message malgré tout et laisser la file dépasser la limite. Utilisez cet événement pour détecter la contre-pression (backpressure), par exemple pour mettre en pause les producteurs ou journaliser les situations de consommateurs lents.

Exemple


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

Retour aux événements