Po nawiązaniu połączenia klienta z serwerem połączenie może niekiedy zostać przerwane z powodu słabego sygnału lub błędów połączenia. Dostępne są 2 właściwości pomagające utrzymać aktywne połączenie.
HeartBeat właściwość umożliwia wysyłanie polecenia Ping co X sekund w celu utrzymania aktywnego połączenia. Niektóre serwery zamykają połączenia TCP, jeśli między węzłami nie są wymieniane żadne dane. HeartBeat rozwiązuje ten problem, wysyłając polecenie ping w określonych odstępach czasu. Zazwyczaj jest to wystarczające do utrzymania aktywnego połączenia.
Właściwość HeartBeatType umożliwia dostosowanie sposobu działania HeartBeat:
1. hbtAlways: wysyła ping co x sekund zdefiniowanych w polu Interval.
2. hbtOnlyIfNoMsgRcvInterval: wysyła ping co x sekund tylko wtedy, gdy w ciągu ostatnich x sekund zdefiniowanych we właściwości Interval nie odebrano żadnych wiadomości.
Przykład: wysyłanie pinga co 30 sekund
oClient := TsgcHTTP2Client.Create(nil);
oClient.HeartBeat.Interval := 30;
oClient.HeartBeat.Enabled := true;
oClient.Active := true;
Jeśli WatchDog jest włączony, gdy klient wykryje rozłączenie, WatchDog będzie próbował ponownie nawiązać połączenie co X sekund, aż do przywrócenia aktywnego połączenia.
Przykład: ponowne połączenie co 10 sekund po rozłączeniu z nieograniczoną liczbą prób.
oClient := TsgcHTTP2Client.Create(nil);
oClient.WatchDog.Interval := 10;
oClient.WatchDog.Attempts := 0;
oClient.WatchDog.Enabled := true;
oClient.Active := true;