Une fois que votre client s'est connecté au serveur, la connexion peut parfois être fermée en raison d'un mauvais signal, d'erreurs de connexion... Il existe 2 propriétés qui aident à maintenir la connexion active.
HeartBeat vous permet d'envoyer un Ping toutes les X secondes pour maintenir la connexion active. Certains serveurs ferment les connexions TCP s'il n'y a pas d'échange de données entre les pairs. HeartBeat résout ce problème en envoyant un ping à un intervalle spécifique. Généralement, cela suffit pour maintenir une connexion active.
La propriété HeartBeatType permet de personnaliser le fonctionnement de HeartBeat :
1. hbtAlways : envoie un ping toutes les x secondes définies dans l'Interval.
2. hbtOnlyIfNoMsgRcvInterval : envoie un ping toutes les x secondes uniquement si aucun message n'a été reçu durant les x dernières secondes définies dans la propriété Interval.
Exemple : envoyer un ping toutes les 30 secondes
oClient := TsgcHTTP2Client.Create(nil);
oClient.HeartBeat.Interval := 30;
oClient.HeartBeat.Enabled := true;
oClient.Active := true;
Si WatchDog est activé, lorsque le client détecte une déconnexion, WatchDog essaie de se reconnecter toutes les X secondes jusqu'à ce que la connexion soit à nouveau active.
Exemple : se reconnecter toutes les 10 secondes après une déconnexion avec un nombre illimité de tentatives.
oClient := TsgcHTTP2Client.Create(nil);
oClient.WatchDog.Interval := 10;
oClient.WatchDog.Attempts := 0;
oClient.WatchDog.Enabled := true;
oClient.Active := true;