除了数据库,openfire 在哪里存储名册值?

Posted

技术标签:

【中文标题】除了数据库,openfire 在哪里存储名册值?【英文标题】:Where does openfire store roster values except the database? 【发布时间】:2014-06-14 06:49:30 【问题描述】:

我正在使用 openfire 和 mysql 实现 xmpp 聊天服务器。 Openfire 确实在数据库中创建了很多表。它有名册表,但只在其中添加行不会创建名册,因为在用户表中添加行会创建用户,我可以使用该用户登录。所以我的问题是openfire是否将名册存储在其他任何地方,因为如果我从名册表中删除条目,它仍然会显示以前的名册。

【问题讨论】:

【参考方案1】:

删除名册确实会影响名册,但作为 openfire 存储缓存需要一些时间。如果您转到服务器管理器-> 缓存摘要,您可以看到缓存列表。只需删除名册缓存,您就可以看到名册与数据库中的相同。我不认为 openfire 商店名册值在其他任何地方。如果您添加/删除名册,请使用用户服务插件或使用 java 制作您自己的插件,不要只是在数据库上删除/更新它。

【讨论】:

【参考方案2】:

它可能会将名册缓存在内存中。如果您要停止服务器,更改数据库,然后启动服务器,您可能会看到反映的更改。这在实践中效果不佳,因此您可能需要使用协议来更改花名册。

【讨论】:

以上是关于除了数据库,openfire 在哪里存储名册值?的主要内容,如果未能解决你的问题,请参考以下文章

仅限 Openfire 名册通信

在 Xmpp/Openfire 中从名册中删除一个朋友

无法通过使用 smack、openfire 获得名册

如何获得 openfire 订阅“to”名册状态?

动态 XMPP 名册?

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