Ejabberd 存档表 (mod_archive) 中的重复条目

Posted

技术标签:

【中文标题】Ejabberd 存档表 (mod_archive) 中的重复条目【英文标题】:Duplicate entries in archive table (mod_archive) of Ejabberd 【发布时间】:2016-04-12 12:30:11 【问题描述】:

我启用了一个 mod_archive 模块来保存我的 ejabberd 聊天实现中的所有聊天。现在所有消息都保存在 mysql 数据库中。但是每条消息都会在 ejabberd 数据库的 归档表 中保存两次。

我不确定为什么存档表中保存了 2 个条目。

我认为当服务器收到来自发件人的消息时会保存一个条目,而当服务器将消息发送给收件人时会保存第二个条目。我说的对吗?

【问题讨论】:

【参考方案1】:

有两个条目,因为您有发送者的存档和接收者的存档。它们是独立管理的,因为:

    发件人或收件人帐户可以删除自己的存档。您不想同时删除其他人的存档。 ejabberd 支持联合。发送方和接收方不一定在同一台服务器上。

【讨论】:

感谢米凯尔的回复。只是想知道记录的插入时间,第二条记录(即接收者)何时插入存档表。是服务器将消息发送给接收者的时候吗? 是的,当它下线时,它还没有添加到MAM表中。

以上是关于Ejabberd 存档表 (mod_archive) 中的重复条目的主要内容,如果未能解决你的问题,请参考以下文章

ejabberd Mnesia 数据库备份

即使处于离线状态,Ejabberd 也会归档消息

如何强制eJabberd将加密的消息存储到数据库(mod_mam)而不是将消息存储为纯文本?

ejabberd PostgreSQL 聊天持久化表

用于存储消息的 ejabberd mod_archive_odbc 表

查询给定用户的存档时出现 503“服务不可用”错误 (mod_mam)