如何从Openfire服务器USING Asmack获取所有用户创建的聊天室列表

时间:2016-10-19 07:58:00

标签: android xmpp openfire asmack groupchat

我正在创建群聊工具,其中多个用户可以相互通信。 我无法理解如何使用smack api从openfire服务器获取所有用户创建的聊天室。

1 个答案:

答案 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