MultiUserChat获取聊天室用户?

时间:2012-05-04 15:50:07

标签: asmack

我正在研究ASmack。 使用asmack获取聊天室用户列表是否可行? http://www.igniterealtime.org/builds/smack/docs/latest/documentation/extensions/muc.html 此列表尚未显示。请给我一些想法。

3 个答案:

答案 0 :(得分:2)

哪个列表?

如果您是MUC的占用者,或者换句话说,如果您已加入MUC,则只能致电getOccupants()

答案 1 :(得分:1)

getOccupants()对我不起作用。所以你可以试试下面的代码:

 try {         
       ServiceDiscoveryManager discoManager =  ServiceDiscoveryManager.getInstanceFor(xmppConn);
       DiscoverItems discoItems = discoManager.discoverItems(roomJID);
       Iterator<DiscoverItems.Item> occupants = discoItems.getItems();  

     } catch (XMPPException e) {
       e.printStackTrace();                
     }

答案 2 :(得分:0)

我能够通过简单跟踪方法将参数作为MultiUserChat对象传递给XMPP聊天室中的用户列表。

public static List<String> findMulitUser(MultiUserChat muc) {
    List<String> listUser = new ArrayList<String>();
    Iterator<String> it = muc.getOccupants();
    // Traverse the chat room name
    while (it.hasNext()) {
        // Chat room members name
        String name = StringUtils.parseResource(it.next());
        System.out.println("Name Of Occupants------>" + name);
        listUser.add(name);
    }
    return listUser;
}