【发布时间】:2016-10-20 14:17:16
【问题描述】:
我可以知道如何使用 Smack-Java 列出特定 XMPP 连接和用户的所有可用聊天室(已创建)。也就是说,我想要的解决方案如下所示:
room1@conference.localhost.com room2@conference.localhost.com . . . 谢谢。
【问题讨论】:
我可以知道如何使用 Smack-Java 列出特定 XMPP 连接和用户的所有可用聊天室(已创建)。也就是说,我想要的解决方案如下所示:
room1@conference.localhost.com room2@conference.localhost.com . . . 谢谢。
【问题讨论】:
您可以使用 openfire 提供的 REST api 来获取所有聊天室。 详情请参考this。
【讨论】:
如果没有插件,您基本上需要检索服务器上所有可用的服务,然后是 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() + " ";
}
}
您将通过所有服务获取您的字符串(或仅使用字符串列表或其他集合)
【讨论】: