Список участников чата
Как я могу получить список участников чата в использовании XMPP framework
?
Я пытался с помощью:
- (void)xmppRoom:(XMPPRoom *)sender didFetchMembersList:(NSArray *)items
Но он возвращает пустой массив
2 ответа
Решение
Этот вопрос старый, но я недавно столкнулся с этой проблемой (xmppRoom:didFetchMembersList:
передается пустой массив). В моем случае проблема заключалась в том, что, когда пользователи были приглашены в комнату, они играли роль "участника" и принадлежность "никто". fetchMembersList
Метод в XMPPRoom ищет элементы с принадлежностью "member".
Вы можете изменить принадлежность так:
[xmppRoom editRoomPrivileges:@[[XMPPRoom itemWithAffiliation:@"member" jid:userJID]]];
Для получения дополнительной информации о ролях и принадлежности см. XEP-0045.
Используйте этот метод, когда вы приглашаете пользователей.
-[xmppRoom editRoomPrivileges:@[[XMPPRoom itemWithAffiliation:@"member" jid:userJID]]];
После создания объекта xmpproom и вызова следующего метода делегата
-(void)xmppRoomDidJoin:(XMPPRoom *)sender{
[sender fetchMembersList];
}
- (void)xmppRoom:(XMPPRoom *)sender didFetchMembersList:(NSArray *)items{
NSLog(@"print user list=====%@",items);
for (NSXMLElement *xmlItem in items) {
NSString *jid = [[xmlItem attributeForName:@"jid"]stringValue];
NSLog(@"print user jid=====%@",jid);
}
}