动态 XMPP 名册?

Posted

技术标签:

【中文标题】动态 XMPP 名册?【英文标题】:Dynamic XMPP rosters? 【发布时间】:2010-06-26 17:39:46 【问题描述】:

我目前正在研究 XMPP,我想知道是否有办法创建动态 XMPP 名册。我希望服务器/组件/插件自动生成任何用户的联系人列表。

组件可以访问和修改名册吗? 我知道一些服务器(如 OpenFire)使用外部数据库来存储这些信息,但如果我修改数据库,我认为不会实时通知用户。

是否有人已经这样做了,或者您知道如何创建它?

感谢您的宝贵时间。

【问题讨论】:

【参考方案1】:

在大多数 XMPP 服务器中,这称为“共享名册组”。

我无法对Openfire 发表评论,因为我已经很长时间没有使用它了,但我想我不知道目前有哪个服务器可以将外部名册更改立即传输到客户端。通常,客户端在下次登录时会简单地选择新的名册。

可以使用 XMPP 调用的 "roster pushes" 将更新立即推送到客户端。这将需要在服务器上进行相当多的工作,但要确定每个客户端知道的名册是什么和新的名册是什么之间的变化,然后只传输这些变化。

如果你真的需要这个,那么一个服务器插件可能是最好的选择,或者为这个功能纠缠你的服务器开发人员(我知道作为一个 Prosody 开发人员我已经被纠缠了,这是我我打算继续工作)。

至于组件是否可以访问用户名册 - 这取决于服务器的实现和配置。

【讨论】:

感谢您的宝贵时间和良好的回答。我会看看我可以用服务器插件做什么。也许协议中有一些内容要求特定客户刷新他们的名册。

以上是关于动态 XMPP 名册?的主要内容,如果未能解决你的问题,请参考以下文章

XMPP:如何查询特定名册的存在

如何使用 simple-xmpp/node-xmpp 获得 Jabber 用户的名册?

XMPP - 名册订阅说明

xmpp 框架 - 检测更改的花名册列表

XMPP:如何通过 Jabber Id 查询特定的名册信息

iOS XMPP 从不接收任何好友/名册请求