【问题标题】:How to delete a particular message from openfire using PHP如何使用 PHP 从 openfire 中删除特定消息
【发布时间】:2017-01-14 19:49:43
【问题描述】:

我正在开发我的要求是删除的聊天应用程序 24 小时后来自聊天室的聊天消息。因此,如果任何用户在 24 小时后从应用程序登录,他们将无法阅读该消息,因为该消息已过期。因此,对于此功能,我首先使用这种方法将此消息存储在 openfire 的 ofMessageArchive 表中,因此我已从该表中手动删除了该消息,但在此之后,如果任何用户从应用程序登录,他们将能够再次看到该消息.

我也为多个用户测试过这个。

我也参考了以下链接,但它不起作用。请帮我 https://community.igniterealtime.org/docs/DOC-2199

【问题讨论】:

    标签: php openfire


    【解决方案1】:

    您要删除一条离线消息,而对于该消息,该消息存档不是相关表。

    离线聊天消息存储在 Openfire 的“ofOffline”表中。每当用户被识别为离线时,Openfire 就会将该用户的传入消息存储在 ofOffline 表中。当该用户上线时(发送初始状态),服务器会为该用户挑选所有离线消息并将其传递给他,并立即将它们从 ofOffline 中删除。

    现在您可以根据用户名查询该表并使用 creationDate 列进行日期比较,该列以毫秒(13 位)为单位存储时间戳并在其前面添加两个零。 (001234567890123)

    【讨论】:

    • 你好,我想删除聊天室的聊天消息,它只存储在ofmessagearchive表中。离线表只存储一对一的聊天消息。
    • 对于群聊,如果开启了对话记录,那么Openfire会将群聊存储在“ofMucConversationLog”中,你能确认这个表是空的吗?
    • 是的,我已经检查过 mucconversation 日志中有一些消息,但这些消息是旧消息,最近的消息不在此表中。如果 openfire 从 mysql 表中获取消息,我想确认一件事或从其他地方。因为当我们重新启动 openfire 时,所有消息都会被删除。
    • Openfire 确实在内存(地图、列表)中维护同步到数据库的数据。在您的情况下,我确信它与“ofMessageArchive”无关,因为要从存档中获取消息,您需要查询服务器(发送特定的 IQ 数据包)。但是,只要用户加入,MUC 模块就会向用户重播房间历史记录。请提供您在加入房间时发送的实际存在节。
    • presence stanza 表示创建房间并将成员加入房间的代码?
    【解决方案2】:

    有一个 XEP 对此进行了讨论:XEP-0079。

    重点是在消息中插入'expire-at' 条件,如下例:

    <message
        from='northumberland@shakespeare.lit'
        id='richard2-4.1.247'
        to='kingrichard@royalty.england.lit'>
      <body>My lord, dispatch; read o'er these articles.</body>
      <amp xmlns='http://jabber.org/protocol/amp'>
        <rule condition='expire-at'
              action='drop'
              value='2004-01-01T00:00:00Z'/>
      </amp>
    </message>
    

    但是,Openfire backlog. 中有一些关于此 XEP 的未解决问题

    所以,我想这个功能还没有准备好。

    祝你好运。

    【讨论】:

    • 感谢 danilo 的回复,但我如何在服务器端处理这个问题,因为设备开发人员在 openfire 上发送和接收消息。所以我是否可以删除服务器上的消息。为此我有从 mysql 删除了 ofmessagearchive 表上的消息,但它在设备端也可以读取。然后 openfire 将这些消息存储在哪里,你对此有任何想法。
    猜你喜欢
    • 1970-01-01
    • 2019-09-23
    • 2023-04-06
    • 2018-11-13
    • 1970-01-01
    • 1970-01-01
    • 2018-01-17
    • 2021-05-18
    • 2020-06-28
    相关资源
    最近更新 更多