客户端电话上的GCM框架部分使用端口5228上的 TCP连接
。此连接用于推送通知,但由于每个tcp连接,它可能会与某些应用严格策略以杀死不活动tcp连接的路由器/运营商进行超时( tcp空闲超时 )。
例如,大多数wifi路由器会在5分钟后杀死无效的连接,例如我的。
GCM框架使用 保持活动
机制在wifi上每15分钟发送一次心跳网络数据包,在3G上每28分钟发送一次心跳网络数据包。此保持活动并非始终对所有用户可靠。
我在这里向Google打开了这个问题:https :
//productforums.google.com/forum/#!category-
topic/ nexus/
connecting- to-networks-and-
devices/ fslYqYrULto 他们同意当前存在问题。
编辑(2014/01/08)
:当前,Google已将心跳间隔更新为8分钟,以连接wifi和移动设备。可能会影响所有android设备2.2+的远程更改,这是避免tcp推送连接超时的一个很好的改进。不过,如果wifi路由器在5分钟后杀死了无效的连接,则推送通知将延迟3(8-5)分钟(如果您没有其他使连接保持有效的通知)
编辑(2016/03/06)
:现在,谷歌似乎正在测试我2年前的反馈,以具有一种动态机制来根据网络确定正确的心跳间隔。就我所知,目前似乎是分阶段推出,仅适用于wifi。因此,基于wifi的SSID,算法会通过逐步优化来确定特定wifi的正确心跳间隔。听起来很好!这是一项远程更改,会影响所有具有Google
Play服务的Android手机。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)