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

Posted

技术标签:

【中文标题】列出 XMPP 连接中的可用聊天室【英文标题】:Listing available chat rooms in XMPP connection 【发布时间】:2016-10-20 14:17:16 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

您可以使用 openfire 提供的 REST api 来获取所有聊天室。 详情请参考this。

【讨论】:

【参考方案2】:

如果没有插件,您基本上需要检索服务器上所有可用的服务,然后是 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() + " ";
     
   

您将通过所有服务获取您的字符串(或仅使用字符串列表或其他集合)

【讨论】:

以上是关于列出 XMPP 连接中的可用聊天室的主要内容,如果未能解决你的问题,请参考以下文章

Android 中的 XMPP 聊天:ChatManager 未解决

PHP:保持与 XMPP 聊天客户端的持久连接

用户在 Tigase 中创建的聊天室

Facebook XMPP 聊天连接

适用于 Android 的 XMPP/facebook 聊天连接

如何使用 xmpp 连接 Facebook 聊天,我想输入朋友的用户名,然后聊天显示 SASL 身份验证失败