聊天室成员列表

时间:2013-08-08 08:37:12

标签: iphone ios xmppframework

如何使用XMPP framework检索聊天室的成员列表?

我尝试使用:

 - (void)xmppRoom:(XMPPRoom *)sender didFetchMembersList:(NSArray *)items 

但它返回一个空数组

2 个答案:

答案 0 :(得分:7)

这个问题很老但我最近遇到了这个问题(xmppRoom:didFetchMembersList:传递了一个空数组)。在我的情况下,问题是,当用户被邀请到房间时,他们将具有“参与者”的角色和“无”的从属关系。 XMPPRoom中的fetchMembersList方法查找关联为“member”的项目。

您可以像这样更改联盟:

[xmppRoom editRoomPrivileges:@[[XMPPRoom itemWithAffiliation:@"member" jid:userJID]]];

有关角色和从属关系的详细信息,请参阅XEP-0045

答案 1 :(得分:2)

邀请用户时使用此方法。

-[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);
    }
}