我的Android系统需要经常更新平板电脑的应用程序(一个信息亭始终连接到wifi和电源插头)。
GCM-HTTP(//developer.android.com/google/gcm/http.html)工作正常,但在某些情况下,单个设备可能会收到许多通知,从而触发此处所述的众所周知的限制问题(//开发人员。 android.com/google/gcm/adv.html#throttling)。这是一个问题,因为通知中的有效负载对系统非常重要。
什么是防止这种情况的最佳解决方案?
解: 我找到了我的问题的解决方案,即XMPP协议。最初,我在平板电脑应用程序中实现了一个Smack,并配置了一个在本地运行的eJabberd服务器。实施非常简单。 几周之后,我收到了谷歌发送给GCM-XMPP的邮件,这个版本甚至可以更快地嵌入应用程序并且工作得非常好!
答案 0 :(得分:3)
可能将time_to_live设置为0.
来自http://developer.android.com/google/gcm/adv.html:
“为消息指定过期日期的另一个好处是 GCM永远不会限制time_to_live值为0秒的消息。换句话说,GCM将保证必须为消息尽最大努力“现在或永远”。“请记住,time_to_live值为0意味着无法立即传递的消息将被丢弃。但是,由于此类消息从未存储过,因此这为发送通知提供了最佳延迟。” p>