使用 XMPP 的 Android 推送通知

标签 android xmpp push-notification

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

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

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

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

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

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

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

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

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

谢谢

最佳答案

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

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

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

关于使用 XMPP 的 Android 推送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12187114/

相关文章:

java - 有关如何将 Vysper xmpp 与 smack 结合使用的示例

php - 实时聊天: What are my options?

ios - 在特定的 viewController 中处理 PushNotifcations

ios - 点击通知栏通知不要自动打开链接

android - 与 GA Android Campaign Tracking 的市场链接

android - 使用 TabHost 动画选项卡切换

java - 如何将自动时间戳表条目从纪元时间更改为现在?

Android Webview css 错误

android - 使用 XMPP over GTalk 模拟推送通知

azure - Xamarin 通知推送 TodoItemManager