心跳时间设置的很大,比如5分钟会有什么不好?

现在做手游,用户经常待机,数分钟后再回来。这种时候心跳过短不太合适,想设置的大一点。
这样的思路有问题吗?

标签: 开发求助
adm512 在 2014-12-27 11:24发布 分享到 weibo
2 回复
#1 {1} wangxy 2014-12-27 13:37 回复

没问题的, 应用层心跳可以根据实际情况进行调整的。
5分钟在一些2G网络下,可能会频繁地断网,因为运营商的设备出现瓶颈时, 可能会优先回收没有数据传输的连接,一般设置到2分钟左右可能比较好。

当然,在网络条件非常好的情况下,比如局域网内, 应用层心跳甚至都可以不要的。

adm512 2014-12-27 15:42 回复

您好,能不能帮我讲讲 应用层心跳的实际用途?听你说的,感觉有点困顿。

#2 wangxy 2014-12-27 18:55 回复

一般来说应用层心跳有两个用途:

  • 终端设备拿到的IP很多时候不是一个公网的IP,2G网络时更是如此。运营商的网络设备会对数据包做NAT转换,需要存储转换的对应关系,消耗设备资源。有些防火墙设备也会干这种事。当设备的资源不够用的时候,一般会使用LRU算法进行回收,如果设备不通过心跳定期激活的话,可能很快就会被回收掉,此时运营商设备或防火墙会使得连接断开

  • 如果没有应用层心跳,当连接非正常断开时,无论是客户端还是服务端都不能很快地感知到连接断开的消息,影响实时性。有应用层心跳的时候,会在一个心跳周期内探知到连接断开。

回到顶部