8

我已经仔细阅读了所有关于主题和 Android 推送通知的帖子。基本上,根据这篇文章Android & (millions of) push notifications ,对于一小笔钱,定义了三种可能性:谷歌云消息、MQTT 和 XMPP。

关于 Google Cloud Message 我看到了一些优点和一些缺点(Android 版本、已安装 Google Play、活跃 google 计数、不保证按顺序发送通知等......)

MQTT 不知道,但我放弃了我的阅读或它们的复杂性以及与其他组件的困难集成。

我选择了 XMPP,因为它是我用来制作游戏应用程序的服务器。

当您在玩游戏并且玩家 A 移动时,它会在他与玩家 B 共享的聊天室中发送一条消息,后者在其客户端应用程序中接收、分析并执行必要的操作。因此,游戏的开发是在聊天室中进行的。

但我也喜欢WhastApp或AngryWords的风格,当一个玩家没有打开应用程序并且另一个玩家发送挑战开始玩或玩游戏时,Android中会出现一个通知。

这就是我所说的,我希望我错了,推送通知。客户不会在特定的时间间隔(轮询)询问,而是在事件发生后启动流程的服务器。我了解所描述的所有方法(XMPP)都涉及永久打开 TCP / IP。

但是是否有必要执行发布/订阅?。如果我有 10,000 个用户,他们必须成对发布/订阅?可以将聊天消息发送到某些类型的完整 JID 吗?

最后,只有当应用程序未在设备上打开时才会在状态栏中显示通知。

谢谢

4

1 回答 1

-2

如果您想在应用未运行时向设备发送消息,则需要使用 Google Cloud Messaging。您可以维护一个 xmpp 会话,但这需要应用程序在后台运行和管理服务。

我们选择扩展我们的 xmpp 离线消息模块,向离线用户发送 GCM 和 APN 推送通知,但这确实需要用户注册他们的设备,并且我们将它们映射到一个 jid。

仅当您想接收状态更新时,您才需要订阅某人向他们发送 xmpp 消息。

于 2015-02-14T17:00:35.003 回答