插入消息(Electron)
提示
- 本文档仅适用于 Electron 解决方案,仅限于配合 Electron 模块 (@rongcloud/electron 与 @rongcloud/electron-renderer)使用。
- 暂不支持聊天室和超级群会话类型
SDK 支持在 Electron 的本地数据库中插入消息。本地插入的消息仅存储于本地数据库,不会发送给服务器或对方用户。
插入单条消息
调用 electronExtension.insertMessage 方法,可在本地会话中插入一条指定方向(发送方或接收方)的消息。
接口
JavaScript
RongIMLib.electronExtension.insertMessage(conversation, message, options)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
conversation | IConversationOption | 是 | 目标会话 |
message | BaseMessage(推荐) 或 IAReceivedMessage | 是 | 消息对象 |
options | IInsertOptions | 否 | 配置参数 |
提示
- 从 5.6.1 开始,SDK 支持插入 BaseMessage。插入
BaseMessage
时不支持控制消息方向,SDK 默认插入发送方向的消息。 - 插入本地数据库的消息如需支持消息扩展功能(详见消息扩展),必须使用 IAReceivedMessage,并打开消息的可扩展属性(
canIncludeExpansion
)。
示例代码
JavaScript
const conversation = {
conversationType: RongIMLib.ConversationType.PRIVATE,
targetId: "<目标用户ID>"
}
const message = {
senderUserId: '<userId>',
messageType: RongIMLib.MessageType.TEXT,
content: {
content: '插入一条消息'
},
// 消息方向
messageDirection: RongIMLib.MessageDirection.SEND
}
RongIMLib.electronExtension.insertMessage(conversation, message).then(res => {
if (res.code === RongIMLib.ErrorCode.SUCCESS) {
// 消息插入成功,返回 IAReceivedMessage 类型的消息数据。
console.log('消息插入成功', res.data)
} else {
console.log('消息插入失败', res.code, res.msg)
}
})
批量插入消息
提示
- 自 v5.7.2 版本开始支持该功能。
- 每次最多插入 500 条消息。
调用 electronExtension.batchInsertMessage 接口批量插入多条消息至本地数据库。
接口
JavaScript
RongIMLib.electronExtension.batchInsertMessage(messages, checkDuplicate)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
messages | IInsertMessage | 是 | 需要批量插入的消息数组 |
checkDuplicate | Boolean | 是 | 消息是否排重 |
示例代码
JavaScript
const messages = [{
conversationType: RongIMLib.ConversationType.PRIVATE,
targetId: '<目标用户ID>'
senderUserId: '<userId>',
messageType: RongIMLib.MessageType.TEXT,
content: {
content: '插入一条消息'
},
messageDirection: RongIMLib.MessageDirection.SEND,
messageUId: '<消息唯一值>',
}]
const checkDuplicate = false
RongIMLib.electronExtension.batchInsertMessage(messages, checkDuplicate).then(res => {
if (res.code === RongIMLib.ErrorCode.SUCCESS) {
// 消息插入成功
console.log('批量插入成功', res.data)
} else {
// 如果消息格式不正确,res.msg 返回该消息在数组中的下标号
console.log('批量插入失败', res.code, res.msg)
}
})