如何实现XMPP发送推送通知

14
我想使用XMPP,这样我的应用程序就可以向Android手机(1.5及更高版本)发送更新。我基本上想使用XMPP向手机发送推送通知。

我该如何实现这一点。目前,我的Web应用程序正在Apache Tomact上运行,具有多个servlet,以便Android手机可以访问信息,但我发现很难理解如何实现XMPP,以便我可以从服务器将信息推送到客户端(Android手机)。

我测试了下面的教程 带有Google ID登录的XMPP示例

它使用Google ID登录。但我需要使用我的Web应用程序来执行谷歌实现的操作。 有什么建议吗?


重复:https://dev59.com/EEnSa4cB1Zd3GeqPLitr - Ilia Choly
因为我希望它能够在2.2以下的版本中运行。 - molleman
2个回答

13

这取决于您推送的性质(是点对点还是发布/订阅)。无论哪种情况,您都需要一个XMPP服务器,连接到您的客户端和应用程序。这将是应用程序向客户端发送通知的手段。

不确定您所说的“我需要使用我的Web应用程序来实现谷歌的内容”是什么意思。您的Web应用程序将成为xmpp服务器的客户端,就像您的电话一样。除非它恰好是启用BOSH的xmpp服务器本身,否则您不能使用xmpp简单地与您的Web应用程序交流,我猜这不太可能发生。

您可以使用Smack进行客户端通信,以及众多可用服务器之一

如果通信针对特定客户端,则创建应用程序和客户端之间的聊天可能是最简单的方法。如果是广播,那么您可以使用MUC(多用户聊天)pubsub


我已经设置了Openfire ......但我不知道如何在服务器端设置它....我的意思是我在链接的应用程序中所提到的Google实现方式。用户登录应用程序,然后可以与任何具有Google ID的人聊天。但是我想要的是一种让我的应用程序服务器可以与很多用户聊天(发送推送通知)的方法。我不确定如何使用smack连接到OpenFire服务器。(客户端和应用程序端都是如此) - molleman

2
通常情况下,您会实现这个作为发布/订阅功能。发布/订阅是基本的发布/订阅模式:您发布某些内容,然后他们就会接收到它。
假设您已经设置了支持 pub-sub 协议扩展的 XMPP 服务器(如 eJabber),在您的应用中,您将登录该服务器并订阅一个节点(其中将发送您的更新通知),并且在您的订阅中必须添加一个处理程序来处理该节点上的任何通知。
在服务器端,当您有一些所有客户端都需要了解的内容时,您会将更新发布到客户端订阅的同一节点上。
更多信息,请参见 http://xmpp.org/extensions/xep-0060.html

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接