使用 strophe.js 在 eJabberd 服务器上获取具有名称的特定花名册

Posted

技术标签:

【中文标题】使用 strophe.js 在 eJabberd 服务器上获取具有名称的特定花名册【英文标题】:Get specific roster with name on eJabberd server using strophe.js 【发布时间】:2015-07-17 11:52:58 【问题描述】:

是否可以获得我在 xmpp 聊天服务器上创建的特定花名册,例如 EveryBody ?

我可以像这样获得 EveryBody 名册的所有用户:

function getInfo()
    usersList = [];
    iq = $iq(type: 'get').c('query', xmlns: 'jabber:iq:roster');
    conn.sendIQ(iq, userList);

现在假设我的花名册名称是:myRoster

有没有办法在我们发送到聊天服务器以获取该名册的所有成员的请求中指定该名册的名称?

【问题讨论】:

【参考方案1】:

共享名册不是这样运作的。正确配置后,共享名册会在用户标准名册内自动检索。当需要名册时,该用户的共享名册将与标准用户名册合并。

因此,如果您像示例 1 那样从 ejabberd 网络管理员创建一个共享名册:每个人都可以看到该域中的其他人。

这是该名册的设置:

Name: EveryBody
Description: This group contains everybody
Members: @all@
Displayed Groups: everybody

请确保在 ejabberd 配置文件中也启用了 shared_roster 模块。

当您登录 ejabberd 时,只需向服务器发送一个 roster get 即可获得填充的 roster。

【讨论】:

以上是关于使用 strophe.js 在 eJabberd 服务器上获取具有名称的特定花名册的主要内容,如果未能解决你的问题,请参考以下文章

XMPP Web 客户端(使用 strophe.js)花时间连接 ejabberd 服务器

Strophe.js 注册插件不起作用

使用 Xmpp、strophe.js 进行聊天应用

strophe.min.js 和 strophe.js 的区别?

< 在使用 strophe.js 时变为 <

将 Strophe.js 与 React Native 一起使用