Список участников чата

Как я могу получить список участников чата в использовании 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);
    }
}
Другие вопросы по тегам