Pārlūkot izejas kodu

信息状态(已读/未读)2

mazhenhang 1 mēnesi atpakaļ
vecāks
revīzija
20f8e1e8d3
1 mainītis faili ar 13 papildinājumiem un 14 dzēšanām
  1. 13 14
      LiangZhiYUMao/pages/message/chat.vue

+ 13 - 14
LiangZhiYUMao/pages/message/chat.vue

@@ -419,18 +419,15 @@ export default {
     // 监听新消息
     this.listenMessages();
     
+    // 监听已读回执(确保在 SDK Ready 之后调用)
+    this.listenMessageReadReceipt();
+    
+    // 标记当前会话的消息为已读
+    this.markConversationRead();
+    
     // 初始化在线状态监听(HTTP 轮询方式)
     this.initOnlineStatusPolling();
     
-    // 等待一下确保 TIM 完全初始化后再监听已读回执
-    setTimeout(() => {
-      // 监听已读回执
-      this.listenMessageReadReceipt();
-      
-      // 标记当前会话的消息为已读
-      this.markConversationRead();
-    }, 500);
-    
     // 如果有预设消息,自动发送
     if (options.message) {
       const message = decodeURIComponent(options.message);
@@ -908,16 +905,19 @@ export default {
      * 监听已读回执
      */
     listenMessageReadReceipt() {
-      if (!timManager.tim || !timManager.tim.TIM) {
-        console.warn('⚠️ TIM 未初始化或 TIM 对象不完整,无法监听已读回执');
+      console.log('🔔 开始注册已读回执监听器...');
+      
+      if (!timManager.tim) {
+        console.warn('⚠️ TIM 未初始化,无法监听已读回执');
         return;
       }
       
-      const TIM = timManager.tim.TIM;
+      console.log('✅ TIM 对象已就绪,准备监听 MESSAGE_READ_BY_PEER 事件');
       
       // 监听消息已读回执事件
       const handleMessageReadByPeer = (event) => {
-        console.log('📖 收到已读回执事件:', event);
+        console.log('=== 📖 收到已读回执事件 ===');
+        console.log('   - 完整事件对象:', event);
         console.log('   - 事件数据:', JSON.stringify(event.data));
         
         // event.data 包含已读的消息列表
@@ -2252,7 +2252,6 @@ export default {
     
     // 清理已读回执监听
     if (this.handleMessageReadByPeer && timManager.tim) {
-      const TIM = timManager.tim.TIM;
       timManager.tim.off(TIM.EVENT.MESSAGE_READ_BY_PEER, this.handleMessageReadByPeer);
       console.log('✅ 已清理已读回执监听');
     }