3

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

我尝试使用:

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

但它返回一个空数组

4

2 回答 2

7

这个问题很老,但我最近遇到了这个确切的问题(xmppRoom:didFetchMembersList:传递了一个空数组)。就我而言,问题是当用户被邀请到房间时,他们将扮演“参与者”的角色和“无”的隶属关系。fetchMembersListXMPPRoom 中的方法查找具有“成员”从属关系的项目。

您可以像这样更改从属关系:

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

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

于 2014-03-08T03:14:44.530 回答
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);
    }
}
于 2015-08-28T08:50:22.583 回答