Una volta che il client si è connesso al server, a volte la connessione può essere interrotta a causa di un segnale scarso, errori di connessione... ci sono 2 proprietà che aiutano a mantenere la connessione attiva.
La proprietà HeartBeat consente di inviare un Ping ogni X secondi per mantenere attiva la connessione. Alcuni server chiudono le connessioni TCP se non vengono scambiati dati tra i peer. HeartBeat risolve questo problema inviando un ping a un intervallo specifico. Di solito questo è sufficiente per mantenere una connessione attiva.
La proprietà HeartBeatType consente di personalizzare il funzionamento di HeartBeat:
1. hbtAlways: invia un ping ogni x secondi definiti nell'Intervallo.
2. hbtOnlyIfNoMsgRcvInterval: invia un ping ogni x secondi solo se non sono stati ricevuti messaggi durante gli ultimi x secondi definiti nella proprietà Interval.
Esempio: inviare un ping ogni 30 secondi
oClient := TsgcHTTP2Client.Create(nil);
oClient.HeartBeat.Interval := 30;
oClient.HeartBeat.Enabled := true;
oClient.Active := true;
Se WatchDog è abilitato, quando il client rileva una disconnessione, WatchDog tenta di riconnettersi ogni X secondi finché la connessione non è nuovamente attiva.
Esempio: riconnessione ogni 10 secondi dopo una disconnessione con tentativi illimitati.
oClient := TsgcHTTP2Client.Create(nil);
oClient.WatchDog.Interval := 10;
oClient.WatchDog.Attempts := 0;
oClient.WatchDog.Enabled := true;
oClient.Active := true;