消息回执
功能描述
开发者可使用此功能实现消息已读未读功能的展示。
当 A 给 B 发送了一条消息,B 在未阅读之前 A 用户显示未读,当 B 用户阅读并调用发送回执接口之后,A 用户可在监听回执中收到通知,此时可根据对应的数据内容将发送的消息显示为已读。
此功能目前仅在 GROUP 类型的会话中开放。用户可以对自己发送的消息发起阅读回执请求,发起后,可以看到有多少人阅读过这条消息。
发送回执请求
消息说明
消息类名 | ObjectName | 存储属性 | 计数属性 | 离线属性 | 推送属性 | 推送内容 |
---|---|---|---|---|---|---|
ReadReceiptRequestMessage | RC:RRReqMsg | 不存储 | 不计数 | 不存储 | 不推送 | 无 |
API 参考:sendMessage
参数说明
属性名称 | 属性类型 | 是否必填 | 属性说明 |
---|---|---|---|
messageUId | String | 是 | messageUId 为消息的唯一标识,通过 message.messageUId 可取到 |
代码示例
var msg = new RongIMLib.ReadReceiptRequestMessage({
// messageUId 为消息的唯一标识,通过 message.messageUId 可取到
messageUId: messageUId
});
var conversationType = RongIMLib.ConversationType.GROUP;
var targetId = '群组 ID'; // 目标 ID
// 将 msg 通过 sendMessage 接口发送即可
RongIMClient.getInstance().sendMessage(conversationType, targetId, msg, {
onSuccess: function (message) {
// message 为发送的消息对象并且包含服务器返回的消息唯一 ID 和发送消息时间戳
console.log('发送消息成功', message);
},
onError: function (errorCode) {
console.log('发送消息失败', errorCode);
}
});
响应回执请求
消息说明
消息类名 | ObjectName | 存储属性 | 计数属性 | 离线属性 | 推送属性 | 推送内容 |
---|---|---|---|---|---|---|
ReadReceiptResponseMessage | RC:RRRspMsg | 不存储 | 不计数 | 不存储 | 不推送 | 无 |
API 参考:sendMessage
参数说明
属性名称 | 属性类型 | 是否必填 | 属性说明 |
---|---|---|---|
receiptMessageDic | Object | 是 | 回复已读通知信息 |
receiptMessageDic
说明
Object 的 key 为对方用户的 userId,value 为回复的 messageUId 数组。可参考代码示例进行理解
代码示例
var msg = new RongIMLib.ReadReceiptResponseMessage({
receiptMessageDic: {
// userId01 为具体的用户 Id, messageUId 为 ReadReceiptRequestMessage 消息中的 messageUId
userId01: [messageUId]
}
});
var conversationType = RongIMLib.ConversationType.GROUP;
var targetId = '群组 ID'; // 目标 ID
// 将 msg 通过 sendMessage 接口发送即可
RongIMClient.getInstance().sendMessage(conversationType, targetId, msg, {
onSuccess: function (message) {
// message 为发送的消息对象并且包含服务器返回的消息唯一 ID 和发送消息时间戳
console.log('发送消息成功', message);
},
onError: function (errorCode) {
console.log('发送消息失败', errorCode);
}
});
危险
- 请求回执成功后可在
message.receiptResponse
属性查看回执情况。 - 群回执存储在 localStorage,若需持久化存储可将群响应回执存储在应用服务器。
// 示例
// 例如,用户 A (userA) 请求 messageId 为 JDKS-DKSL-FHDK-FSGH 的消息回执
// 用户 B (userB) 和用户 C (userC)阅读了消息
var responses = {
'userA_JDKS-DKSL-FHDK-FSGH': 2
};