我正在研究ASmack。是否可以使用asmack获取聊天室用户列表?http://www.igniterealtime.org/builds/smack/docs/latest/documentation/extensions/muc.html此列表尚未显示。请给我一些想法。
发布于 2012-05-05 18:26:44
哪个列表?
如果您是MUC的占有者,或者换句话说,如果您已加入MUC,则只能调用getOccupants()。
发布于 2014-01-23 02:18:29
getOccupants()对我不起作用。所以你可以试试下面的代码:
try {
ServiceDiscoveryManager discoManager = ServiceDiscoveryManager.getInstanceFor(xmppConn);
DiscoverItems discoItems = discoManager.discoverItems(roomJID);
Iterator<DiscoverItems.Item> occupants = discoItems.getItems();
} catch (XMPPException e) {
e.printStackTrace();
}发布于 2015-04-11 21:09:59
我可以通过以下简单的方法将参数作为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;
}https://stackoverflow.com/questions/10452104
复制相似问题