如何在 iOS 中使用 ejabberd xmpp 创建永久组

Posted

技术标签:

【中文标题】如何在 iOS 中使用 ejabberd xmpp 创建永久组【英文标题】:How to create permanent group using ejabber xmpp in iOS 【发布时间】:2017-11-29 12:35:08 【问题描述】:

注意:- 在降级问题之前阅读说明。

我们正在为聊天应用程序个人聊天实现 ejabberd,所有功能都可以正常工作。现在我们需要使用 ejabberd MUC/SUB 服务创建永久组。

我们阅读了https://docs.ejabberd.im/developer/xmpp-clients-bots/proposed-extensions/muc-sub/ 文件。

现在我的问题是,如果你们有任何演示或示例代码,我们如何使用 ios 发送所有这些 IQ,然后在这里分享。

我们也尝试使用 php REST API,但没有获得任何存在或 ping 到 iOS 应用程序。

【问题讨论】:

【参考方案1】:

Ejabberd 永远不会记住我们创建的 groupJID。但是您可以通过在创建组时存储组信息并每次从服务器获取组信息并手动加入来在 Web 服务的帮助下实现,

 let xmppRoom = self.getRoomObject(roomJid: roomID.appending(GroupConfernce))

 let history = DDXMLElement.element(withName: "history") as! DDXMLElement

 history.addAttribute(withName: "maxstanzas", stringValue: "10")

 xmppRoom.addDelegate(self.appDelegate, delegateQueue: DispatchQueue.main)
 xmppRoom.join(usingNickname: self.appDelegate.xmppStream?.myJID.user, history: history)

否则您可以使用 MongooseIM 服务器,它具有记住组信息的能力,无需任何手动过程。

查看以下链接

https://github.com/esl/MongooseIM

【讨论】:

以上是关于如何在 iOS 中使用 ejabberd xmpp 创建永久组的主要内容,如果未能解决你的问题,请参考以下文章

无法将用户从 iOS 客户端注册到 Ejabberd 服务器 - XMPP

如何在 ejabberd 中的 xmpp 消息正文中附加自定义数据

我们如何将图像或照片上传到 ejabberd XMPP Web 服务器?

如何在 ejabberd/XMPP 中获取所有在线用户的列表?

如何使用 XMPPHP 客户端创建 XMPP(ejabberd) 用户

如何在 iOS 中通过 xmpp 删除单个聊天?