İstemciniz sunucuya bağlandıktan sonra, bazen zayıf sinyal, bağlantı hataları nedeniyle bağlantı kapatılabilir... bağlantıyı etkin tutmaya yardımcı olan 2 özellik vardır.
HeartBeat özelliği, bağlantıyı canlı tutmak için her X saniyede bir Ping göndermenize olanak tanır. Bazı sunucular, peer'lar arasında veri değişilmezse TCP bağlantılarını kapatır. HeartBeat bu sorunu, belirli bir aralıkta bir ping göndererek çözer. Genellikle bir bağlantıyı aktif tutmak için bu yeterlidir.
HeartBeatType özelliği, HeartBeat'in nasıl çalıştığını özelleştirmenize olanak tanır:
1. hbtAlways: Interval içinde tanımlanan her x saniyede bir ping gönderir.
2. hbtOnlyIfNoMsgRcvInterval: yalnızca Interval özelliğinde tanımlanan son x saniye boyunca hiçbir mesaj alınmadıysa her x saniyede bir ping gönderir.
Örnek: her 30 saniyede bir ping gönderin
oClient := TsgcHTTP2Client.Create(nil);
oClient.HeartBeat.Interval := 30;
oClient.HeartBeat.Enabled := true;
oClient.Active := true;
WatchDog etkinleştirilmişse, istemci bir bağlantı kesilmesi algıladığında, WatchDog bağlantı tekrar aktif olana kadar her X saniyede bir yeniden bağlanmayı dener.
Örnek: bir bağlantı kesilmesinden sonra sınırsız denemeyle her 10 saniyede bir yeniden bağlanın.
oClient := TsgcHTTP2Client.Create(nil);
oClient.WatchDog.Interval := 10;
oClient.WatchDog.Attempts := 0;
oClient.WatchDog.Enabled := true;
oClient.Active := true;