TsgcWebSocketClientPropriétés › WatchDog

WatchDog Propriété

Se reconnecte automatiquement au serveur après une déconnexion inattendue.

Syntaxe

property WatchDog: TsgcWSWatchDogClient_Options read FWatchDog write SetWatchDog;

Valeur par défaut

Enabled=False, Interval=10, Attempts=0, Backoff=wdbFixed, BackoffMultiplier=2.0, MaxInterval=0, Jitter=0

Remarques

Lorsque WatchDog.Enabled est True, le client détecte une connexion interrompue et tente de se reconnecter toutes les Interval secondes. Attempts contrôle le nombre maximum de tentatives de reconnexion ; zéro signifie des tentatives illimitées. Utilisez l'événement OnBeforeWatchDog pour personnaliser le flux de reconnexion, par exemple pour basculer vers un serveur secondaire ou annuler la tentative en définissant Handled sur True.

Le délai entre les tentatives de reconnexion peut croître exponentiellement au lieu de rester fixe. Backoff sélectionne la stratégie : wdbFixed (par défaut) attend Interval secondes entre chaque tentative, tandis que wdbExponential multiplie le délai par BackoffMultiplier (par défaut 2.0) après chaque tentative échouée, en commençant à Interval. MaxInterval plafonne le délai calculé en secondes (0 signifie pas de plafond). Jitter ajoute un facteur aléatoire entre 0 et 1 au délai (par exemple, 0.2 fait varier chaque délai jusqu'à ±20%), ce qui empêche de nombreux clients de se reconnecter exactement au même moment après un redémarrage du serveur ; définir Jitter à une valeur supérieure à zéro active le moteur de backoff même lorsque Backoff vaut wdbFixed. Le compteur de tentatives se réinitialise dès qu'une connexion est établie.

Exemple


oClient := TsgcWebSocketClient.Create(nil);
oClient.WatchDog.Interval := 10;
oClient.WatchDog.Attempts := 0;
// exponential backoff: 10, 20, 40... up to 300 seconds, with 20% jitter
oClient.WatchDog.Backoff := wdbExponential;
oClient.WatchDog.MaxInterval := 300;
oClient.WatchDog.Jitter := 0.2;
oClient.WatchDog.Enabled := true;
oClient.Active := true;

Retour aux propriétés