融云im撤回消息

Posted 刘建伯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了融云im撤回消息相关的知识,希望对你有一定的参考价值。

融云im撤回消息

由于疫情原因,公司基于融云做了个在线的聊天室,之前增加了一些聊天室的基础功能,最近呢由于需求补充,需要把消息撤回加上。
官方文档说明地址:
https://docs.rongcloud.cn/v4/...

撤回消息代码如下:

recall() {
         const conversation = this.im.Conversation.get({
            targetId: this.targetUser.id,
            type: this.targetUser.conversationType
          });
          conversation.recall({
            messageUId: this.currentMsg.messageUId,
            sentTime: this.currentMsg.sentTime
          }).then((message) => {
            this.$message.success(\'撤回成功\');
            const msg =  Object.assign({extra: {nickname: this.currentUser.nickname}}, message);
            this.handleMessage(msg, false);
          });
    },

在此要注意,撤回成功之后是不会触发会话的监听的,需要自己在成功的回调里面处理撤回的消息。撤回消息处理代码如下:


if (message.messageType === \'RC:RcCmd\') {
            const msg = Object.assign({tip: `${isSelef ? \'您\':  nickname}撤回了一条消息`}, message);
            if (messageIds.includes(message.content.messageUId)) {
                const index = messageIds.indexOf(message.content.messageUId);
                this.messageList.splice(index, 1, msg);
            } else {
                this.messageList.push(message);
            }
        } else {
            this.messageList.push(message);
        }

当对方在消息监听中收到上述的消息时,也可以调用上述的方法进行撤回消息处理。

撤回消息现在是没有时间限制的,如果要加上时间限制,可以根据消息的sentTime处理。

至此,消息撤回已成功集成。集成中发现了一个问题,撤回的消息在会话列表中还存在,已经给融云提交工单,看后续能不能处理。

融云官网地址:https://www.rongcloud.cn/

融云开发文档地址:https://docs.rongcloud.cn/v4/

以上是关于融云im撤回消息的主要内容,如果未能解决你的问题,请参考以下文章

融云技术分享:解密融云IM产品的聊天消息ID生成策略

融云 IM SDK 发送语音消息

集成融云 IM 问题总结

使用融云 IM 点击最近聊天记录时跳转到 @ 自己的消息

安卓统一推送联盟融云成唯一IM云服务企业

im即时通讯开发:消息模型万人群已读回执消息撤回功能