TsgcHTTP2Client | Mantenere Attiva la Connessione Client

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.

 

HeartBeat

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;

WatchDog

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;