我的Android系统需要经常更新平板电脑的应用程序(一个信息亭始终连接到wifi和电源插头).
GCM-HTTP(//developer.android.com/google/gcm/http.html)工作正常,但在某些情况下,单个设备可能会收到许多通知,从而触发此处所述的众所周知的限制问题(//开发人员. android.com/google/gcm/adv.html#throttling).这是一个问题,因为通知中的有效负载对系统非常重要.什么是防止这种情况的最佳解决方案?
在服务器中实现一项服务,该服务将通知分组到同一设备并以有限的频率进行拍摄.
使用XMPP服务.我想使用GCM-XMPP(//developer.android.com/google/gcm/ccs.html),但您需要在白名单中签名,所以我认为每个人都不能使用它.作为替代方案,我应该按照此处的建议使用aSmack或Quickblox(Android和XMPP:当前可用的解决方案)和这里(更好的方法来在Android上使用XMPP实现聊天应用程序?)?
实现基本套接字连接,如(http://thinkandroid.wordpress.com/2010/03/27/incorporating-socket-programming-into-your-applications/)中所述?在这种情况下,我必须考虑连接暂时丢失的可能性?
解决方案:我找到了我的问题的解决方案,即XMPP协议.最初,我在平板电脑应用程序中实现了一个Smack,并配置了一个在本地运行的eJabberd服务器.实施非常简单.几周之后,我收到了谷歌发送给GCM-XMPP的邮件,这个版本甚至可以更快地嵌入应用程序并且工作得非常好!