如何使用XMPPFramework从ejabberd删除两个用户之间的特定消息?

时间:2018-08-30 14:20:18

标签: xmpp ejabberd xmppframework ejabberd-module

我正在尝试从ejabberd删除邮件,但从中获取错误。

<iq xmlns="jabber:client" to="my id" from="other user id" type="error" id="8A056958-DE72-4234-8440-928E8D650948"><remove xmlns="urn:xmpp:archive" with="other user id" start="2018-08-30T10:40:00Z"/><error code="503" type="cancel"><service-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/><text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas">No module is handling this query</text></error></iq>

请帮助。

1 个答案:

答案 0 :(得分:0)

根据我在这里看到的https://www.process-one.net/en/ejabberd/protocols/

Ejabberd不支持旧的邮件归档XEP-0136,而是支持XEP-0313邮件存档管理。

以下XEP可用于在发件人和收件人http://legastero.github.io/customxeps/extensions/message-delete.html上实现消息删除

但是我不知道如何从XEP-0313邮件存档管理中删除邮件-看来ejabberd和XEP本身是不可能的。我没有看到存储在数据库https://github.com/processone/ejabberd/blob/master/src/mod_mam_sql.erl#L110

中的任何消息ID

我唯一的想法是将文本消息以及删除状态存储在存档中。然后,在检索历史记录时,将这些删除信号应用于消息