我是否知道如何使用Smack-Java列出特定XMPP连接和用户的所有可用聊天室(已创建)。也就是说,我想要的解决方案如下所示:
room1@conference.localhost.com room2@conference.localhost.com 。 。 。 感谢。
答案 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() + " ";
}
}
您将获得包含所有服务的字符串(或只使用字符串列表或其他集合)