我目前正在研究 XMPP,我想知道是否有办法创建动态 XMPP 名册。我希望服务器/组件/插件自动生成任何用户的联系人列表。
组件可以访问和修改名册吗?我知道一些服务器(如 OpenFire)使用外部数据库来存储这些信息,但如果我修改数据库,我认为不会实时通知用户。
有些人已经这样做了,还是您知道如何创建它?
感谢您的时间。
在大多数 XMPP 服务器中,这称为“共享名册组”。
我不能特别评论Openfire,因为我已经很长时间没有使用它了,但我认为我不知道目前有哪个服务器可以将外部名册更改立即传输到客户端。通常,客户端在下次登录时会简单地选择新的名册。
可以使用 XMPP 所谓的“名册推送”将更新立即推送给客户端。这将需要在服务器上进行相当多的工作,以识别每个客户端知道的名册是什么和新的名册是什么之间的变化,然后只传输这些变化。
如果你真的需要这个,那么一个服务器插件可能是要走的路,或者纠缠你的服务器开发人员以获得该功能(我知道作为Prosody开发人员我已经被纠缠了,这是我计划做的事情上)。
至于组件是否可以访问用户名册——这取决于服务器的实现和配置。