首页 > 解决方案 > 如何使用 ejabberd(使用他们的 API 和/或使用 XML)获取私人房间列表?

问题描述

我知道我可以使用以下方法从我的服务器中检索公共房间列表:

<iq from='hag66@shakespeare.lit/pda'
    id='zb8q41f4'
    to='chat.shakespeare.lit'
    type='get'>
  <query xmlns='http://jabber.org/protocol/disco#items'/>
</iq>

XEP-0045 - 发现房间

但是,我需要所有房间的列表,无论是公共房间还是私人房间,以及是否在线。

有什么建议,特别是通过 XML?

标签: xmlxmppejabberdstropheconverse.js

解决方案


他们不公开。我知道使用上面的代码我不应该检索该列表。我需要的是一种检索私人的方法。

当 MUC 管理员请求房间列表时,他会获得所有房间,包括私人房间。

您还可以使用以下 ejabberd 命令获取房间的完整列表:

$ ejabberdctl muc_online_rooms muc.localhost
privateroomcreatedbyuser1@muc.localhost
privateroomcreatedbyuser3@muc.localhost
publicroomcreatedbyuser1@muc.localhost
publicroomcreatedbyuser3@muc.localhost

如果启用相应的模块,这些命令可以通过 XML-RPC 或 ReST 调用执行。


推荐阅读