跳到主要内容

版本:2.X

消息回执

功能描述

开发者可使用此功能实现消息已读未读功能的展示。

当 A 给 B 发送了一条消息,B 在未阅读之前 A 用户显示未读,当 B 用户阅读并调用发送回执接口之后,A 用户可在监听回执中收到通知,此时可根据对应的数据内容将发送的消息显示为已读。

此功能目前仅在 GROUP 类型的会话中开放。用户可以对自己发送的消息发起阅读回执请求,发起后,可以看到有多少人阅读过这条消息。

发送回执请求

消息说明

消息类名ObjectName存储属性计数属性离线属性推送属性推送内容
ReadReceiptRequestMessageRC:RRReqMsg不存储不计数不存储不推送

API 参考:sendMessage

参数说明

属性名称属性类型是否必填属性说明
messageUIdStringmessageUId 为消息的唯一标识,通过 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存储属性计数属性离线属性推送属性推送内容
ReadReceiptResponseMessageRC:RRRspMsg不存储不计数不存储不推送

API 参考:sendMessage

参数说明

属性名称属性类型是否必填属性说明
receiptMessageDicObject回复已读通知信息

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);
}
});
危险
  1. 请求回执成功后可在 message.receiptResponse 属性查看回执情况。
  2. 群回执存储在 localStorage,若需持久化存储可将群响应回执存储在应用服务器。
// 示例
// 例如,用户 A (userA) 请求 messageId 为 JDKS-DKSL-FHDK-FSGH 的消息回执
// 用户 B (userB) 和用户 C (userC)阅读了消息
var responses = {
'userA_JDKS-DKSL-FHDK-FSGH': 2
};