从 openfire 服务器获取好友列表

Get Friends list from openfire Server

如何从 objective C 中的 openfire 服务器以编程方式获取所有好友,我正在使用 XMPP 聊天功能框架。

在 iOS 中,您可以使用 xmpp

中的以下函数轻松获取组 members/friends
- (void)xmppRoom:(XMPPRoom *)sender didFetchModeratorsList:(NSArray *)items

这是一个获取好友的功能。

在下面的函数中添加您的主机名。

func getList() {
  let query = try! XMLElement(xmlString: "<query xmlns='http://jabber.org/protocol/disco#items' node='all users'/>")
  let iq = XMPPIQ(type: "get", to: XMPPJID(string: "Your Host Name"), elementID: xmppStream.generateUUID(), child: query)
  iq?.addAttribute(withName: "id", stringValue: "get")
  xmppStream.send(iq)
}

您将在委托方法中获取列表。

extension YourClassName: XMPPRosterDelegate {

    func xmppRosterDidEndPopulating(_ sender: XMPPRoster!) {
        if let jids = xmppRoster.xmppRosterStorage.jids(for: xmppStream) as? [XMPPJID] {
            print("JIDS: \(String(describing: jids))")
            for item in jids {
                print(item.user)
            }
        }
    }
}

您可以查看我的这个 link 用于 XMPP 连接和不同的委托。