在XMPP连接中列出可用的聊天室

时间:2016-10-20 14:17:17

标签: java xmpp openfire smack

我是否知道如何使用Smack-Java列出特定XMPP连接和用户的所有可用聊天室(已创建)。也就是说,我想要的解决方案如下所示:

room1@conference.localhost.com room2@conference.localhost.com 。 。 。 感谢。

2 个答案:

答案 0 :(得分:0)

您可以使用openfire提供的REST apis来获取所有聊天室。 有关详细信息,请参阅Encoding.Convert

答案 1 :(得分:0)

如果没有插件,您基本上需要检索服务器上可用的所有服务,然后是jid(请注意:如果群聊是私有的,您将无法在列表中进行检索)

String groupchatHosted = ""; 

for (String service : MultiUserChatManager.getInstanceFor( connection ).getServiceNames();)
{  
   List<HostedRoom> hosted = MultiUserChatManager.getInstanceFor( connection ).getHostedRooms( service  ));

      for (HostedRoom room : hosted)
     {
       groupchatHosted += room.getJid() + " ";
     }
   }

您将获得包含所有服务的字符串(或只使用字符串列表或其他集合)