乐趣区

关于前端:融云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/

退出移动版