TsgcWebSocketClientEigenschappen › WatchDog

WatchDog Eigenschap

Maakt automatisch opnieuw verbinding met de server na een onverwachte verbreking.

Syntaxis

property WatchDog: TsgcWSWatchDogClient_Options read FWatchDog write SetWatchDog;

Standaardwaarde

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

Opmerkingen

Wanneer WatchDog.Enabled True is, detecteert de client een verbroken verbinding en probeert elke Interval seconden opnieuw verbinding te maken. Attempts bepaalt het maximale aantal herverbindingspogingen; nul betekent onbeperkte pogingen. Gebruik de gebeurtenis OnBeforeWatchDog om de herverbindingsstroom aan te passen, bijvoorbeeld om terug te vallen op een secundaire server of de poging te annuleren door Handled in te stellen op True.

De vertraging tussen herverbindingspogingen kan exponentieel groeien in plaats van vast te blijven. Backoff selecteert de strategie: wdbFixed (standaard) wacht Interval seconden tussen elke poging, terwijl wdbExponential de vertraging na elke mislukte poging vermenigvuldigt met BackoffMultiplier (standaard 2.0), beginnend vanaf Interval. MaxInterval begrenst de berekende vertraging in seconden (0 betekent geen limiet). Jitter voegt een willekeurige factor tussen 0 en 1 toe aan de vertraging (bijvoorbeeld 0.2 laat elke vertraging tot ±20% variëren), wat voorkomt dat veel clients op exact hetzelfde moment opnieuw verbinding maken na een serverherstart; het instellen van Jitter op een waarde groter dan nul schakelt de backoff-engine in, zelfs wanneer Backoff wdbFixed is. De pogingenteller wordt gereset zodra een verbinding tot stand is gebracht.

Voorbeeld


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;

Terug naar Properties