需要帮助了解聊天、XMPP、jabber id 等
Posted
技术标签:
【中文标题】需要帮助了解聊天、XMPP、jabber id 等【英文标题】:Need help understanding chat, XMPP, jabber id's, etc 【发布时间】:2011-03-11 16:12:21 【问题描述】:我正在创建一个在 ios、android、BB 和 Win7 上运行的移动应用程序。这是一个基于位置的应用程序,您可以加入群组,然后能够查看群组中其他成员的位置。这一切都很好。我目前正在使用 GAE 来管理组。
现在我想添加群组成员相互聊天的功能。没有 1-1 IM,但 1-many 聊天室。因此,当您访问应用程序中的某个组时,您可以键入一条消息,该组的所有其他成员都将能够看到您的消息。我开始走移动推送(APNS、C2DM 等)的道路,但认为必须有更好的方法。我只希望在应用程序实际运行时收到消息,因此在这种情况下,移动推送的重要部分并不重要。但我当然也不想投票。
所以我开始研究 XMPP,它似乎是正确的解决方案,但我是这项技术的新手。我不希望用户必须已经拥有或使用他选择的某些服务创建一些在线 IM 存在。我只想在移动应用程序中有一个“用户名”首选项,这就是他需要做的所有事情。
所以这就是我真正需要帮助的地方。我可以以编程方式在某处创建聊天室并为组的用户创建 id 吗?我是否需要托管自己的 XMPP 服务器(据我所知不适用于 GAE)。
或者我只是完全没有更好的解决方案?
非常感谢您的帮助。
沃伦
【问题讨论】:
【参考方案1】:我使用QuickBlox.com 作为我的应用程序的后端。它内置了基于 XMPP 的 Chat 模块和 Messages 模块,可以帮助您向 iOS、Android 和 WP7 发送跨平台推送。
顺便说一句,聊天模块支持 MUC(多用户聊天)中的群组,他们也有一个 sample 将聊天集成到我们的应用程序中。
【讨论】:
【参考方案2】:检查http://hosted.im/有免费计划(5个用户)至少你可以测试它。
关于 XMPP 实现,你可以做你想做的,但你需要运行你自己的 xmpp 服务器
服务器:
ejabberd 开火 贾伯德 jabberd2 老虎酶我不知道GAE是否支持扩展我在这里帮不了你。
希望这能有所帮助。
【讨论】:
【参考方案3】:即使这个问题有点老了,我认为这对其他技术蜜蜂有用.. :)
您可以使用 Quickblox 作为您的服务器,并向他们注册,他们为用户提供不同的计划,包括免费计划。
此外,如果您愿意,您可以维护自己的服务器。
aSmack 是为 android 实现 XMPP 的好库。您可以从 aSmack 站点获取 jar 和源代码。谷歌一下。
但根据我自己的经验,实现多用户聊天有点困难..
【讨论】:
嘿,我想实现多用户聊天..使用 aSmack,到目前为止,我确实创建了房间并获得了可用房间,我在这里遇到了问题,我想显示那个房间的讨论历史,我确实喜欢这个Message msg2 = muc2.nextMessage(1000);
我重复这条线好几次我从历史中收到了 20 条消息,但是现在当我回到任何房间时,我在上面的代码中得到了 NPE,解决方案是什么。以及如何为传入聊天创建侦听器..
我认为这个有你想要的一切..igniterealtime.org/builds/smack/docs/latest/documentation/…
然后试试这个示例项目github.com/redsolution/xabber-android他们在这个项目中使用了一个Smack源。我也在处理尚未完成的多用户聊天:(但是我正在获取房间的先前聊天,并且邀请听众工作正常,但邀请拒绝听众仍然有一些问题。如果你发现任何有用的东西,请也与我分享它会有很大的帮助。:) 谢谢。以上是关于需要帮助了解聊天、XMPP、jabber id 等的主要内容,如果未能解决你的问题,请参考以下文章
检查在xmpp服务器中注册的jid(jabber id) - iOS xmpp框架