XMPP - 如何删除两个 jid 之间的所有消息,但仅针对一个用户?

问题描述

问题: 我想从两个用户 A 和 B 之间的等式的一侧删除所有消息(和线程)。我不知道这是否可能,如果可能,如何。

我有

  • 每个用户的jid
  • JS(自定义)中的 XMPP 库,允许我发送 IQ 或任何其他类型的节。

例如,这是我获取朋友(名单)列表的方式:

  async getFriends() {
    const requestId = this.sendStanza(
      'iq',{ type: 'get' },(stanza) => stanza.c('query',{ xmlns: 'jabber:iq:roster' }),)
    const result = await this.once('*',requestId);
    const requests = result.children[0].children.map(child => child.attrs.jid);
    return requests;
  }

希望这足以让某人为我提供建议。谢谢。

解决方法

如果您拥有对客户端逻辑的完全访问权限,则可以实现自己的逻辑,例如,当接收方收到时,您可以发送带有特定名称空间 (xmlns) 的 IQ 节以及一些元素/属性IQ,它会做任何你想要的逻辑(删除消息、线程等。)

看看这个: https://xmpp.org/extensions/xep-0424.html 删除(收回)单条消息的扩展。