我仔细阅读了有关主题和Android推送通知的所有帖子。基本上,对于一小笔钱,根据这篇文章Android & (millions of) push notifications,定义了三种可能性:Google Cloud Message,MQTT和XMPP。
关于Google Cloud Message我看到了一些优点和一些缺点(Android的版本,安装了Google Play,活跃谷歌的数量,不保证按顺序发送通知等等。)
MQTT不知道,但我放弃了我的读数或其复杂性以及与其他组件的困难集成。
我选择了XMPP,因为它是我用来制作游戏应用的服务器。
当您正在玩游戏且玩家A移动时,它会在与玩家B共享的聊天室中发送消息,玩家B在其客户端应用中接收,分析并执行必要的操作。因此,游戏的开发发生在聊天室。
但我也喜欢WhastApp或AngryWords的风格,当玩家没有打开应用程序并且其他玩家发送挑战以开始播放或玩游戏时,Android中会出现通知。
这就是我所说的,我希望我错了,推送通知。客户不会以特定间隔(轮询)询问,而是在事件发生后启动流程的服务器。据我所知,所描述的所有方法,XMPP都涉及永久打开TCP / IP。
但是有必要进行发布/订阅吗?如果我有10,000个用户,他们必须成对发布/订阅?可以处理某些类型的完整JID的聊天消息吗?
最后,只有在设备上没有打开应用程序时才会这样做,状态栏中会显示通知。
感谢
答案 0 :(得分:-1)
如果您想在应用未运行时向设备发送消息,则需要使用Google Cloud Messaging。您可以维护一个xmpp会话,但这需要应用程序在后台运行和管理服务。
我们选择扩展我们的xmpp离线消息传递模块,以便向离线用户发送GCM和APN推送通知,但这需要用户注册他们的设备并将它们映射到jid。
只有当您想要接收状态更新时,才需要订阅某人才能向他们发送xmpp消息。