【发布时间】:2023-03-03 02:57:01
【问题描述】:
我的 Android 系统需要向平板电脑应用程序(始终连接到 wifi 和电源插头的信息亭)发送频繁更新。
GCM-HTTP (//developer.android.com/google/gcm/http.html) 工作正常,但在某些情况下,单个设备可能会收到许多通知,触发此处描述的众所周知的限制问题 (//developer. android.com/google/gcm/adv.html#throttling)。这是一个问题,因为通知中的有效负载对系统非常重要。
防止这种情况的最佳解决方案是什么?
- 在服务器中实现一项服务,将通知分组到同一设备并以有限的频率发送。
- 使用 XMPP 服务。我想使用 GCM-XMPP (//developer.android.com/google/gcm/ccs.html) 但您需要登录白名单,所以我认为不是每个人都可以使用它。作为替代方案,我是否应该分别按照此处 (Android and XMPP: Currently available solutions) 和此处 (Better Way to implement the chat application using XMPP on Android?) 的建议使用 aSmack 或 Quickblox?
- 如 (//thinkandroid.wordpress.com/2010/03/27/incorporating-socket-programming-into-your-applications/) 中所述实现基本套接字连接?在这种情况下,我必须考虑连接暂时丢失的可能性?
解决方案: 我找到了我的问题的解决方案,那就是 XMPP 协议。一开始,我在平板应用程序中实现了 aSmack,并配置了一个在本地运行的 eJabberd 服务器。实施非常简单。 几周后,我收到了一封来自 Google 的关于 GCM-XMPP 的邮件,它可以更快地嵌入到应用程序中并且工作得非常好!
【问题讨论】:
-
嗨,你有解决方案吗?
-
请不要在问题中编辑您的解决方案。而是回答您自己的问题并将问题标记为已回答。
标签: android sockets xmpp google-cloud-messaging