Set Message Status (Electron)
This document applies only to the Electron Solution and describes how to maintain message receipt, sending, and read status in the client's local database.
Setting Message Receipt Status
Support for Multiple Status Settings Simultaneously
tip
Supported since SDK version 5.9.3.
Call the [electronExtension.setMessageReceivedStatusInfo] method to set multiple receipt statuses simultaneously for received messages.
Interface
RongIMLib.electronExtension.setMessageReceivedStatusInfo(messageId, receivedStatusInfo)
#### Parameter Description
| Parameter | Type | Required | Description |
|:--- |:--- |:--- |:--- |
| messageId | number | Yes | Message ID |
| receivedStatusInfo | [IReceivedStatusInfo](https://doc.rongcloud.cn/apidoc/im-web/latest/zh_CN/interfaces/IReceivedStatusInfo.html) | Yes | Message receipt status details object |
#### Example Code
```js
const messageId = 1 // Use the messageId field from the message
const receivedStatusInfo = {
isRead: true,
isListened: true,
isDownload: false,
isRetrieved: false,
}
RongIMLib.electronExtension.setMessageReceivedStatusInfo(messageId, receivedStatusInfo).then(res => {
console.log(res.code)
})
### Support for Single Status Setting \{#setMessageReceivedStatus}
:::tip
Supported since SDK version 5.4.0, deprecated in version 5.9.3. If the IMLib SDK version is ≧ 5.9.3, it is recommended to use the `setMessageReceivedStatusInfo` interface instead.
:::
Call the [electronExtension.setMessageReceivedStatus] method to set a single receipt status for received messages.
#### Interface
```js
RongIMLib.electronExtension.setMessageReceivedStatus(messageId, receivedStatus)
#### Parameter Description
| Parameter | Type | Required | Description |
|:--- |:--- |:--- |:--- |
| messageId | number | Yes | Message ID |
| receivedStatus | [ReceivedStatus](https://doc.rongcloud.cn/apidoc/im-web/latest/zh_CN/enums/ReceivedStatus.html) | Yes | Receipt status value |
#### Example Code
```js
const messageId = 1 // Use the messageId field from the message
RongIMLib.electronExtension.setMessageReceivedStatus(messageId, RongIMLib.ReceivedStatus.READ).then(res => {
console.log(res.code)
})
## Setting Message Sending Status \{#setMessageSentStatus}
:::tip
Supported since SDK version 5.4.0.
:::
Call the [electronExtension.setMessageSentStatus] method to set the sending status for messages you have sent.
#### Interface
```js
RongIMLib.electronExtension.setMessageSentStatus(messageId, sentStatus)
#### Parameter Description
| Parameter | Type | Required | Description |
|:--- |:--- |:--- |:--- |
| messageId | number | Yes | Message ID |
| sentStatus | [SentStatus](https://doc.rongcloud.cn/apidoc/im-web/latest/zh_CN/interfaces/SentStatus.html) | Yes | Sending status value |
#### Example Code
```js
const messageId = 1 // Use the messageId field from the message
RongIMLib.electronExtension.setMessageSentStatus(messageId, RongIMLib.SentStatus.SENT).then(res => {
console.log(res.code)
})
## Batch Setting Messages as Read by Recipient (via Timestamp) \{#setMessageStatusToRead}
:::tip
Supported since SDK version 5.4.0.
:::
Call the [electronExtension.setMessageStatusToRead](https://doc.rongcloud.cn/apidoc/im-web/latest/zh_CN/modules/electronExtension.html#setMessageStatusToRead) method to batch update the status of messages you sent before a specified timestamp to SentStatus.READ (read by recipient).
#### Interface
```js
RongIMLib.electronExtension.setMessageStatusToRead(conversation, timestamp)
#### Parameter Description
| Parameter | Type | Required | Description |
|:--- |:--- |:--- |:--- |
| conversation | [IConversationOption] | Yes | Target conversation |
| timestamp | number | Yes | Message sending timestamp; messages sent before this time will be marked as read |
#### Example Code
```js
const conversation = {
conversationType: RongIMLib.ConversationType.PRIVATE,
targetId: "<Target User ID>",
channelId: ""
}
const timestamp = 1632728573423
RongIMLib.electronExtension.setMessageStatusToRead(conversation, timestamp).then(res => {
console.log(res.code)
})
<!-- links -->
[@rongcloud/electron]: https://www.npmjs.com/package/@rongcloud/electron
[@rongcloud/electron-renderer]: https://www.npmjs.com/package/@rongcloud/electron-renderer
[electronExtension.setMessageReceivedStatus]: https://doc.rongcloud.cn/apidoc/im-web/latest/zh_CN/modules/electronExtension.html#setMessageReceivedStatus
[electronExtension.setMessageReceivedStatusInfo]: https://doc.rongcloud.cn/apidoc/im-web/latest/zh_CN/modules/electronExtension.html#setMessageReceivedStatusInfo
[electronExtension.setMessageSentStatus]: https://doc.rongcloud.cn/apidoc/im-web/latest/zh_CN/modules/electronExtension.html#setMessageSentStatus