Push消息是通过TCP长连接来进行的,TCP长连接存活,消息Push就及时,所以要对影响TCP连接寿命的因素进行研究。
- 1、NAT超时
大部分移动无线网络运营商都在链路一段时间没有数据通讯时,会淘汰 NAT 表中的对应项,造成链路中断(NAT超时的更多描述见附录6.1)。NAT超时是影响TCP连接寿命的一个重要因素(尤其是国内),所以客户端自动测算NAT超时时间,来动态调整心跳间隔,是一个重要的优化点。
image.png- 2、DHCP的租期(lease time)
目前测试发现安卓系统对DHCP的处理有Bug,DHCP租期到了不会主动续约并且会继续使用过期IP,这个问题会造成TCP长连接偶然的断连。
- 3、网络状态变化
手机网络和WIFI网络切换、网络断开和连上等情况有网络状态的变化,也会使长连接变为无效连接,需要监听响应的网络状态变化事件,重新建立Push长连接。
参考
Android微信智能心跳方案 Android微信智能心跳方案
https://www.cnblogs.com/yaowen/p/5685561.html
https://mp.weixin.qq.com/s/ghnmC8709DvnhieQhkLJpA
网友评论