跳到主要内容

版本:5.X

删除消息(Electron)

本文档仅适用于 Electron 解决方案,仅限于配合 Electron 模块 (@rongcloud/electron@rongcloud/electron-renderer)使用。

提示
  • App 用户的单聊会话、群聊会话、系统会话的消息默认仅存储在本地数据库中,仅支持从本地删除。如果 App(App Key/环境)已开通单群聊消息云端存储,该用户的消息还会保存在融云服务端(默认 6 个月),可从远端历史消息记录中删除消息。
  • 针对单聊会话、群聊会话,如果通过任何接口以传入时间戳的方式删除远端消息,服务端默认不会删除对应的离线消息补偿(该机制仅会在打开多设备消息同步开关后生效)。此时如果换设备登录或卸载重装,仍会因为消息补偿机制获取到已被删除的历史消息。如需彻底删除消息补偿,请提交工单,申请开通删除服务端历史消息时同时删除多端补偿的离线消息。如果以传入消息对象的方式删除远端消息,则服务端一定会删除消息补偿中的对应消息。
  • 针对单聊会话、群聊会话,如果 App 的管理员或者某普通用户希望在所有会话参与者的历史记录中彻底删除一条消息,应使用撤回消息功能。消息成功撤回后,原始消息内容会在所有用户的本地与服务端历史消息记录中删除。
  • 客户端 SDK 不提供删除聊天室消息的接口。当前用户的聊天室本地消息在退出聊天室时会被自动删除。开通聊天室消息云端存储服务后,如需清除全部用户的聊天室历史消息,可使用服务端 API 清除消息

本文档描述了如何删除客户端本地消息。

通过会话删除

提示

从 SDK 5.4.0 开始支持该接口。

调用 electronExtension.clearMessages 从本地消息数据库中删除指定会话所有消息。

const conversation = {
conversationType: RongIMLib.ConversationType.PRIVATE,
targetId: "<目标用户ID>"
}
RongIMLib.electronExtension.clearMessages(conversation).then(res => {
if (res.code === 0) {
console.log('成功清理此会话下的消息');
} else {
console.log(res.code, res.msg);
}
}).catch(error => {
console.log(error)
})
参数类型说明
conversationIConversationOption会话

通过时间戳删除

提示

从 SDK 5.4.0 开始支持该接口。

调用 electronExtension.deleteMessagesByTimestamp 根据时间戳,从本地消息数据库中删除单个会话中早于该时间戳的消息数据。

const conversation = {
conversationType: RongIMLib.ConversationType.PRIVATE,
targetId: "<目标用户ID>"
}
const timestamp = 1632728573423

RongIMLib.electronExtension.deleteMessagesByTimestamp(conversation, timestamp, false).then(res => {
if (res.code === 0) {
console.log('成功清理此会话下的消息');
} else {
console.log(res.code, res.msg);
}
}).catch(error => {
console.log(error)
})
参数类型说明
conversationIConversationOption会话
timestampnumber指定删除该时间戳之前的消息
cleanSpaceboolean是否清理数据条目所使用的磁盘空间
提示

清理磁盘空间会阻塞进程且耗时较长,不推荐使用。 数据在被抹除的情况下,未清理的磁盘空间会在后续存储操作中复用,且对数据查询无影响。

通过消息 ID 删除

提示

从 SDK 5.4.0 开始支持该接口。

调用 electronExtension.deleteMessages 通过消息 ID 从本地消息数据库中删除指定的一条或一组消息数据。删除多条消息时,请确保消息 ID 均属于同一会话。

const messageIds = [<messageId>]

RongIMLib.electronExtension.deleteMessages(messageIds).then(res => {
if (res.code === 0) {
console.log('成功删除消息');
} else {
console.log(res.code);
}
}).catch(error => {
console.log(error)
})
参数类型说明
messageIdsnumber[]消息 Id 数组,必须是同一会话的消息