我正在创建群聊工具,其中多个用户可以相互通信。 我无法理解如何使用smack api从openfire服务器获取所有用户创建的聊天室。
答案 0 :(得分:0)
第一步:
检查服务器上可用的服务。
每项服务可以托管0个或更多群聊。 默认情况下,Openfire只注册一项服务,默认名称为 conference 。
List<String> services = MultiUserChatManager.getInstanceFor( connection ).getServiceNames();
第二步:
检查所有托管群聊并根据需要存储结果。 例如:
Map<String, List<HostedRoom>> chatroomInServices = new HashMap<String,List<HostedRoom>)(services.size());
for (String service : services)
{
chatroomInServices.put(service, MultiUserChatManager.getInstanceFor( connection ).getHostedRooms( service ) );
}
for (List<HostedRoom> hosted: chatroomInServices.values())
{
for (HostedRoom room : hosted)
{
room.getJid(); // user@conference.server
}
}
您可能还需要存储每个roomJid