如何使用XMPP framework
检索聊天室的成员列表?
我尝试使用:
- (void)xmppRoom:(XMPPRoom *)sender didFetchMembersList:(NSArray *)items
但它返回一个空数组
答案 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);
}
}