聊天室成员列表

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

我试过使用:

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

但是它返回一个空数组

这个问题是旧的,但我最近遇到了这个确切的问题( xmppRoom:didFetchMembersList:传递一个空的数组)。 在我的情况下,问题是,当用户被邀请到房间,他们将有一个“参与者”的angular色和“none”的从属。 fetchMembersList中的fetchMembersList方法将查找具有“member”属性的项目。

你可以像这样改变从属关系:

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

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

邀请用户时使用此方法。

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

创buildxmpproom对象并调用以下委托方法之后

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