XMPP 与 Android 交互

Posted

技术标签:

【中文标题】XMPP 与 Android 交互【英文标题】:XMPP and Android interaction 【发布时间】:2010-06-01 20:31:21 【问题描述】:

我目前正在寻找有关如何在 android 2.1 上构建 XMPP 客户端应用程序的信息。我遇到了 this link,它在某种程度上谈到了同样的问题。我是 android dev 的新手,因此发现那里的解决方案很困难消化。

系统目前有 Active MQ 作为 JMS 提供者。我的工作是将来自 JMS 的消息馈送到 XMPP 服务器,然后在 android 2.1 上开发 XMPP 客户端,它将监听并显示服务器推送的事件的通知。

我有以下担忧(这听起来可能很愚蠢) 1.如何将事件从JMS推送到XMPP服务器,XMPP服务器又将它们推送到android上?

2.我应该使用哪个 XMPP 服务器实现?我有 3 个选项 * Openfire:非常成熟(曾是商业产品),但听起来很重量级,用 Java 编写 * Prosody:轻量级且易于使用,用 Lua 编写。还没有 PubSub 模块 * Tigase:同样轻量级,用 Java 编写,支持 PubSub 如何测试和设置这些服务器。我的应用需要 PubSub 功能吗?

3.对于 XMPP 客户端,我遇到了给定 here 的 Smack API,它已在 2 年前更新。谁能告诉我如何在 Android 2.1 中使用它。如果可能的话,任何人都可以给我邮寄最新的工作smack jar 文件。

谢谢, 阿美亚

【问题讨论】:

【参考方案1】:

为什么不使用 eJabberd 作为 XMPP 服务器?在我看来,这是对 pubsub 的最佳支持,并且是一个非常高效的服务器。我们使用它已经 2 年了,没有任何问题。在客户端,是的,如果绝对是开源的选择,那么它有一些缺点:它不支持 pubsub,并且如果你深入研究它的一些功能,你会遇到一些非常讨厌的错误。我们必须对其进行大量改进和扩展,以实现我们用于 Android 的全功能社交网络 IM/微博/地理定位客户端(称为 BuddyMob),现在我们提供 Smack 的扩展版本作为商业产品(参见http://www.ubikod.com/products.htm)。我们的一些错误修复已集成到 Smack 主干中,但我们所做的大多数扩展都不是免费的。

【讨论】:

asmack 不支持 pubsub ??那么这是什么? igniterealtime.org/builds/smack/docs/latest/documentation/…【参考方案2】:

查看 asmack 以获取 android Smack 客户端:http://code.google.com/p/asmack/

【讨论】:

【参考方案3】:

您可以使用 Apache Camel 将消息从 JMS 推送到 XMPP - http://camel.apache.org/xmpp.html

【讨论】:

以上是关于XMPP 与 Android 交互的主要内容,如果未能解决你的问题,请参考以下文章

如何在Android中创建使Xmpp与XMPP服务器保持连接的服务?

无法将 Android 客户端与本地 XMPP 服务器连接

将 XMPP 与 .net 服务器和 android 客户端一起使用

通过聊天 (XMPP) Android 发送日历事件

如何在 Android 上实现 XMPP Server 以及与 GCM 的通信?

用于 React Native Android 的 XMPP 库