|
|
@@ -6,6 +6,7 @@ class TIMManager {
|
|
|
this.isLogin = false;
|
|
|
this.userId = null;
|
|
|
this.messageCallbacks = [];
|
|
|
+ this.messageReadCallbacks = []; // 🔥 添加已读回执回调列表
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -42,6 +43,9 @@ class TIMManager {
|
|
|
// 会话列表更新
|
|
|
this.tim.on(TIM.EVENT.CONVERSATION_LIST_UPDATED, this.onConversationListUpdated.bind(this));
|
|
|
|
|
|
+ // 🔥 消息已读回执(对方已读我发送的消息)
|
|
|
+ this.tim.on(TIM.EVENT.MESSAGE_READ_BY_PEER, this.onMessageReadByPeer.bind(this));
|
|
|
+
|
|
|
// 被踢下线
|
|
|
this.tim.on(TIM.EVENT.KICKED_OUT, this.onKickedOut.bind(this));
|
|
|
|
|
|
@@ -198,6 +202,24 @@ class TIMManager {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 消息已读回执(对方已读我发送的消息)
|
|
|
+ */
|
|
|
+ onMessageReadByPeer(event) {
|
|
|
+ console.log('=== 📖 [全局] 收到已读回执事件 MESSAGE_READ_BY_PEER ===');
|
|
|
+ console.log(' - 触发时间:', new Date().toLocaleString());
|
|
|
+ console.log(' - 事件数据:', JSON.stringify(event.data));
|
|
|
+
|
|
|
+ // 触发所有已读回执回调
|
|
|
+ this.messageReadCallbacks.forEach(callback => {
|
|
|
+ try {
|
|
|
+ callback(event);
|
|
|
+ } catch (error) {
|
|
|
+ console.error('❌ 已读回执回调执行失败:', error);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 会话列表更新
|
|
|
*/
|
|
|
@@ -483,6 +505,25 @@ class TIMManager {
|
|
|
this.messageCallbacks.splice(index, 1);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 监听已读回执
|
|
|
+ */
|
|
|
+ onMessageRead(callback) {
|
|
|
+ this.messageReadCallbacks.push(callback);
|
|
|
+ console.log('✅ 已注册已读回执回调,当前回调数:', this.messageReadCallbacks.length);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 移除已读回执监听
|
|
|
+ */
|
|
|
+ offMessageRead(callback) {
|
|
|
+ const index = this.messageReadCallbacks.indexOf(callback);
|
|
|
+ if (index > -1) {
|
|
|
+ this.messageReadCallbacks.splice(index, 1);
|
|
|
+ console.log('✅ 已移除已读回执回调,剩余回调数:', this.messageReadCallbacks.length);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// 导出单例
|