TsgcHTTP2Client | Utrzymywanie aktywnego połączenia klienta

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

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;

WatchDog

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;