|
AnyChat客户端与服务器之间的网络连接是通过心跳包来维持,默认情况下,每5000ms(5秒)发送一次心跳包,当连续20000ms(20秒)没有收到心跳包则认为网络连接中断,触发客户端的OnLinkClose事件。
上述参数设置符合大多数应用场景,但是在部分应用场景下需要对这两项参数进行定制,比如:
1、高延迟卫星通信环境:由于网络上的固有通信延迟都比较大(通常为1、2秒,最高可达10多秒),如果采用默认的心跳机制参数,则很容易造成客户端连接中断,产生误报;
2、需要长时间待机的硬件设备:有些设备采用AnyChat来实现可视对讲、智能家居等应用,在待机状态下心跳包的发送间隔将影响设备的待机时间;
基于上述需求,自AnyChat r4321版本开始,开放网络连接检测周期、超时时间设置接口,主要是在核心服务器配置文件(AnyChatCoreServer.ini)中进行配置:- [Function Settings]
- CloseFrontLink=1
- ……
- NetCheckTime=5000
- NetTimeoutTime=20000
复制代码 其中:
NetCheckTime:网络连接检测周期,单位:毫秒,默认为5000,表示每5秒发送一次心跳包来检测网络状态,保持网络连接。
NetTimeoutTime:网络连接超时时间,单位:毫秒,默认为20000,表示20秒没有收到心跳包即说明网络连接被中断,将触发客户端的OnLinkClose事件。
在卫星网络环境中,除了需要配置上述网络参数外,还需要结合“NetLargeDelay”特性(参考:AnyChat针对卫星通道进行优化)一起才能达到最佳的用户体验,主要是由于上述网络参数只影响网络连接是否断开的判断,而“NetLargeDelay”特性还影响文件传输、语音视频数据的接收等功能。
注意:如果需要使用该特性,客户端、服务器均需要升级到AnyChat r4321及以上版本。
|
|