我在我的应用程序与GCM工作,我有一个问题。
大多数时候,我得到消息马上,但有时消息来5分钟,以后陆续一样,他们被困在路上。 这是正常的吗?
我在我的应用程序与GCM工作,我有一个问题。
大多数时候,我得到消息马上,但有时消息来5分钟,以后陆续一样,他们被困在路上。 这是正常的吗?
在客户端手机上的GCM框架部分使用的端口5228.用于推送通知这个连接其上的TCP连接 ,而且是每一个TCP连接,它可以继续暂停时以一些路由器/适用严格的政策杀不活动的TCP连接运营商( 根据tcp空闲超时 )。
大多数无线路由器杀死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可能故意拖延消息,以防止应用程序消耗过多的资源和产生负面影响电池寿命。
这和语言整个文档的其余部分之间,你所描述什么听起来像我期望什么。 有没有立即交货的保证; 通常您会马上传递的消息,但有时你不能。
我发现同样的事情,原来的海报。 这似乎需要5分钟“唤醒”,然后将其与消息非常迅速的交易。
我的应用程序与聋哑人交谈处理文本的项目。 呼叫者启动对话,和聋人通过电话响应。 只发生在第一步骤中,所述新的消息“出蓝色”的延迟。 一旦完成对于第一个(应用程序,设备,系统-ID?)别人来通过速度非常快,几乎瞬间。