use*_*809 10 android android-intent google-cloud-messaging
我在我的应用程序中使用GCM,我遇到了问题.
大部分时间我都会立即收到消息,但有时消息会在5分钟之后一个接一个地发出,就像他们被困在路上一样.这是正常的吗?
客户端电话上的GCM框架部分在端口5228上使用TCP连接.此连接用于推送通知,但是作为每个tcp连接,它可以在某些路由器/运营商超时时应用严格的策略来终止非活动的tcp连接(tcp空闲超时).
大多数wifi路由器在5分钟后杀死非活动连接,例如我的.
GCM框架使用保持活动机制在wifi上每15分钟发送一次心跳网络数据包,在3G上每28分钟发送一次.对于所有用户而言,这种保持活动并不总是可靠的.
我在这里打开了谷歌的问题:https://productforums.google.com/forum/#! category_topic/nexus/ connecting- to-networks-and-devices/ fslYqYrULto 他们同意目前存在问题.
我还没有注意到,到目前为止,在我极其有限的测试中,但根据我对文档的理解,这听起来并不令人惊讶:
GCM通常会在发送后立即发送消息.但是,这可能并非总是可行.例如,设备可能已关闭,脱机或以其他方式不可用.在其他情况下,发送方本身可能会通过使用delay_while_idle标志请求在设备变为活动状态之前不传递消息.最后,GCM可能会故意延迟消息,以防止应用程序消耗过多的资源并对电池寿命产生负面影响.
在其他文档中,在这个和语言之间,你所描述的听起来就像我期望的那样.不保证立即交货; 你通常会立即发送消息,但有时你不会.
| 归档时间: |
|
| 查看次数: |
8003 次 |
| 最近记录: |