Когда я создаю определенную комнату, я могу выбрать членов этой группы. Но когда группа создана кем-то другим, я не могу выбрать членов этой группы.
Сначала вызывается метод didDiscoverRooms
, а затем внутри него члены выбираются так ...
func xmppMUC(_ sender: XMPPMUC, didDiscoverRooms rooms: [Any], forServiceNamed serviceName: String) {
print("XMPPRoom: didDiscoverRooms: \(rooms)")
if let elements = rooms as? [DDXMLElement] {
for element in elements {
print("Name: \(String(describing: element.attributeStringValue(forName: "name")))")
print("JID: \(String(describing: element.attributeStringValue(forName: "jid")))")
if let name = element.attributeStringValue(forName: "jid"), let roomJID = XMPPJID(string: name) {
let roomStorage = XMPPRoomMemoryStorage()
let room = XMPPRoom(roomStorage: roomStorage!, jid: roomJID, dispatchQueue: DispatchQueue.main)
room.addDelegate(self, delegateQueue: DispatchQueue.main)
room.activate(self.xmppStream)
room.fetchConfigurationForm()
room.fetchMembersList()
}
}
}
}
room.fetchMembersList()
в свою очередь вызывает этот метод делегата.
func xmppRoom(_ sender: XMPPRoom, didFetchMembersList items: [Any]) {
print("XMPPRoom: \(sender.roomJID)")
print("XMPPRoom: didFetchMembersList: \(items)")
}
Первый оператор печати дает название комнаты, а второй оператор печати дает членов комнаты. Но это работает только если комната создана мной. Если комната создана кем-то другим, я не смогу получить членов ...