消息已读未读 - IM即时通讯
开发者可以通过本功能轻松实现:
- 将收到的消息标记为已读状态,详情见本页后文
- 实时监听来自对方的消息已读回执,详情见本页后文
- 查询或监听会话列表时,获取未读消息数
- 获取历史中每条消息的已读状态
前置条件
- GoEasy版本2.3 +
将消息标记为已读
对于收到且已读的消息,请务必将其标记为已读状态,否则未读消息数将始终保持,并且在下次连接GoEasy时,会再次收到之前未标记的消息。
执行本方法后,会触发会话列表更新事件,未读消息数将随之减少,同时发送方将收到消息已读回执。
将消息标记为已读
im.markMessageAsRead({
id: 'user001/group001',
type: GoEasy.IM_SCENE.PRIVATE, //群聊:GoEasy.IM_SCENE.GROUP, 客服消息:GoEasy.IM_SCENE.CS,
onSuccess: function () {
console.log('标记私聊已读成功');
},
onFailed: function (error) {
console.log('标记私聊已读失败', error);
},
});
监听消息已读回执
当消息接收方执行“标记已读”后,发送方将会收到消息已读回执, 对于使用vue,uniapp等支持双向绑定的web框架时,消息已读状态会自动更新,无需监听该事件。
暂时不支持群聊和客服消息显示已读未读状态,将于后期版本提供,敬请期待。
监听私聊消息已读回执
let onMessageRead = function (messages) {
//文字消息
// [{
// "messageId": "8f0e27a0c7e111eab347b726da4416bd",
// "timestamp": 1594958217087,
// "type": "text",
// "senderId": "3bb179af-bcc5-4fe0-9dac-c05688484649",
// "payload": {
// "text": "Hello, GoEasyIM"
// },
// "read":true,
// "receiverId": "fdee46b0-4b01-4590-bdba-6586d7617f95"
// }]
console.log("Read messages:" + JSON.stringify(messages));
};
//监听单聊消息已读
im.on(GoEasy.IM_EVENT.MESSAGE_READ, onMessageRead);