0

我正在创建多个用户可以相互交流的群聊应用程序。我不明白如何使用 smack api 从 openfire 服务器获取所有用户创建的聊天室。

4

1 回答 1

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

于 2016-10-19T08:58:54.767 回答