TsgcHTTP2Client | 保持客户端连接活跃

客户端连接到服务器后,有时连接可能因信号不良、连接错误等而关闭。有两个属性可以帮助保持连接活跃。

 

HeartBeat

HeartBeat 属性允许您每隔 X 发送一次 Ping,以保持连接活跃。某些服务器会在对端之间没有数据交换时关闭 TCP 连接。HeartBeat 通过按固定间隔发送 ping 解决此问题,通常足以维持连接活跃。

 

属性 HeartBeatType 允许自定义心跳的工作方式:

 

1. hbtAlways:每隔 Interval 中定义的 x 秒发送一次 ping。

2. hbtOnlyIfNoMsgRcvInterval:仅在最近 Interval 属性定义的 x 秒内未收到任何消息时,每 x 秒发送一次 Ping。

 

示例: 每 30 秒发送一次 ping


oClient := TsgcHTTP2Client.Create(nil);
oClient.HeartBeat.Interval := 30;
oClient.HeartBeat.Enabled := true;
oClient.Active := true;

WatchDog

如果启用了 WatchDog,当客户端检测到断线时,WatchDog 将每隔 X 秒尝试重新连接,直到连接再次激活。

 

示例:断开连接后每隔 10 秒重新连接一次,尝试次数不限。

 


oClient := TsgcHTTP2Client.Create(nil);
oClient.WatchDog.Interval := 10;
oClient.WatchDog.Attempts := 0;
oClient.WatchDog.Enabled := true;
oClient.Active := true;