TsgcWebSocketServerÉvénements › OnSendBufferFull

OnSendBufferFull Événement

Se déclenche lorsque la file d'attente sortante d'une connexion cliente 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 pour une connexion dont la file contient déjà MaxQueueSize messages, cet événement se déclenche avec la Connection concernée et 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 les consommateurs lents avant qu'ils n'épuisent la mémoire du serveur.

Exemple


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

Retour aux événements