TsgcWebSocketServer › Événements › OnSendBufferFull
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.
property OnSendBufferFull: TsgcWSSendBufferFullEvent;
// TsgcWSSendBufferFullEvent = procedure(Connection: TsgcWSConnection; const QueueSize: Integer; var DropMessage: Boolean) of object
—
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.
procedure OnSendBufferFull(Connection: TsgcWSConnection; const QueueSize: Integer;
var DropMessage: Boolean);
begin
WriteLn('#slow consumer ' + Connection.Guid + ': ' + IntToStr(QueueSize) + ' messages queued');
end;