使用 Conversejs 加入房间时清除所有 MUC 消息

Posted

技术标签:

【中文标题】使用 Conversejs 加入房间时清除所有 MUC 消息【英文标题】:Clear all MUC messages when joining room using Conversejs 【发布时间】:2019-10-26 21:08:55 【问题描述】:

我已将 Conversejs 配置为使用预配置的帐户和凭据自动加入房间。我希望它在加入房间时清除以前的消息。

我已经能够把这个插件的外壳放在一起,并确认它可以执行,但不知道清除聊天文本的代码。

converse.plugins.add('myplugin',  
        initialize: function ()  
            this._converse.api.listen.on('roomsAutoJoined', () =>  
                // How to clear chat ??
            );            
         
    );

基本上是在加入房间时自动为用户执行 /clear 命令。 总会有另一个用户登录房间,否则我知道它会自动清除。 如果重要的话,我也在使用 ejabberd。

【问题讨论】:

【参考方案1】:

您可以将clear_muc_messages_on_reconnection 设置为true

【讨论】:

非常感谢您提供的出色软件!我知道该选项,但是我正在尝试通过一个函数来执行此操作,并且需要更多的手握持:) 我确实结束了添加 _converse = this._converse;在我的初始化中,让一些事情像超时注销功能一样工作。我正在查看“无头”文档以了解您提到的该功能是如何工作的,但无法在我自己的功能中重现它。 为什么要用函数来做这个? AFAIK 我提到的选项可以满足您的要求。

以上是关于使用 Conversejs 加入房间时清除所有 MUC 消息的主要内容,如果未能解决你的问题,请参考以下文章

为啥即使在客户离开房间并加入另一个房间后,消息也会发送到所有房间?烧瓶插座

在 agsxmpp 中发现加入的房间

如何用一个节加入多个 xmpp 房间?

当用户加入房间时,如何将没有隶属关系的用户直接设置为成员 - Ejabberd

如何使用 Flask 和 Socket.io 加入和离开房间的简明示例?

光子:重新加入房间