1

谷歌云消息(推送消息)问题。
我有两部智能手机(HTC Sensation XE、Desire HD)和一台平板电脑(三星 Galaxy Note 10.1 Wifi)。
有时我需要等待将近 15 分钟才能收到 GCM 推送消息。有时我会立即收到 GCM 推送消息(在 30 秒内)。
正常吗?还是仅仅因为我连接了Wifi?
如果正常,是否有任何其他服务,如“长轮询”我可以用来从服务器检索消息?
我目前正在使用 GCM+Polling(AlarmManager) 从远程服务器检索消息。
有什么建议或更好的想法吗?

下面是我的测试结果:
左边是服务器发送时间,右边是客户端移动接收时间。
所有测试结果均在 Wifi 连接环境下。
===========================
HD 23:10:18, 23:24:XX

XE 23:11:21, 23:22:44

注 23:10:20、23:14:54

===========================
HD 00:08:12, 00:08:27

XE 00:07:55, 00:07:58

注意 00:08:04、00:13:35

===========================
HD 00:40:21, 00:55:22

XE 00:39:56, 00:40:14

注意 00:40:13、00:40:59

谢谢!!

4

3 回答 3

0

GCM 在过度使用时会使用节流,请参阅以下文档了解更多详细信息:

http://developer.android.com/google/gcm/adv.html#throttling

于 2013-05-05T16:39:39.350 回答
0

请在这里阅读我的回答:

Google Cloud Messaging - 即时或长时间延迟收到的消息

这基本上是一个tcp超时问题

于 2014-03-08T16:55:29.753 回答
0

您可以通过以下代码手动触发心跳以保持连接处于活动状态。如果某些网络路由器在特定时间段(有时 5 分钟)内处于空闲状态,则会自动终止空闲套接字连接。每 5 分钟执行一次代码,以便在关闭时重新建立连接。但是,显然减少间隔会消耗更多的电池(我不知道这与这里有多大关系,因为现在智能手机都配备了高 mAh 电池)。

getApplicationContext().sendBroadcast(new Intent("com.google.android.intent.action.GTALK_HEARTBEAT"));
getApplicationContext().sendBroadcast(new Intent("com.google.android.intent.action.MCS_HEARTBEAT"));
于 2016-04-06T17:57:19.363 回答