Bläddra i källkod

fix: 1.解决聊天的第一次加载收不到消息的问题 sockent.off 关闭订阅的问题。

suwenjiang 1 månad sedan
förälder
incheckning
0334d3ca75

+ 1 - 1
src/components/NavigationBar/index.client.vue

@@ -89,7 +89,7 @@ onMounted(() => {
 
 // 卸载Socket
 onUnmounted(() => {
-  XYWebSocket.SocketEventsBus.off(XYWebSocket.SocketEvents.chatEvent)
+  // XYWebSocket.SocketEventsBus.off(XYWebSocket.SocketEvents.chatEvent)
 })
 
 // 是否有消息显示红点

+ 3 - 6
src/pages/chat/group-chat.vue

@@ -70,7 +70,7 @@
 import ChatMessage from './components/chat-message'
 import ChatInput from './components/chat-input'
 import { findHyperlinks } from '~/pages/chat/components/chat-message/link-message/handle'
-import { XYWebSocket } from '~/utils/XYWebSocket'
+import {SocketEventsBus, XYWebSocket} from '~/utils/XYWebSocket'
 import { isValidJson } from '~/utils'
 
 const route = useRoute()
@@ -288,8 +288,7 @@ function getLocalId() {
 onMounted(() => {
   initGroupId()
 
-  try {
-    XYWebSocket.SocketEventsBus.on(XYWebSocket.SocketEvents.chatEvent, async (chat) => {
+    XYWebSocket.SocketEventsBus.on('chat-event', async (chat) => {
       console.log('订阅群聊消息', chat)
       const isCurrGroupId = chat.groupId && chat.groupId === groupId.value
       const isOtherUserMessage = chat.sendUserId && chatsStore.isRealMessage(chat.sendUserId)
@@ -303,9 +302,7 @@ onMounted(() => {
         }
       }
     })
-  } catch (error) {
-    console.log(error, '--------------error-----------')
-  }
+
 })
 
 // 查寻群公告

+ 1 - 1
src/pages/chat/single-chat.vue

@@ -297,7 +297,7 @@ function getLocalId() {
 
 onMounted(() => {
   initGroupId()
-  XYWebSocket.SocketEventsBus.on(XYWebSocket.SocketEvents.chatEvent, async (chat) => {
+  XYWebSocket.SocketEventsBus.on('chat-event', async (chat) => {
     console.log('单聊页面消息订阅', chat)
     const isCurrGroupId = chat.groupId && chat.groupId === groupId.value;
     const isOtherUserMessage = chat.sendUserId && chatsStore.isRealMessage(chat.sendUserId)

+ 1 - 1
src/pages/profile/my-news/index.vue

@@ -496,7 +496,7 @@ onMounted(() => {
 })
 
 onUnmounted(() => {
-  XYWebSocket.SocketEventsBus.off(XYWebSocket.SocketEvents.chatEvent)
+  // XYWebSocket.SocketEventsBus.off(XYWebSocket.SocketEvents.chatEvent)
 })
 </script>
 

+ 14 - 7
src/utils/XYWebSocket.ts

@@ -44,16 +44,23 @@ export namespace XYWebSocket {
                 if (!e) return;
                 if (!e.data) return;
                 const messagePackage = JSON.parse(e.data) || {};
-                SocketEventsBus.emit(SocketEvents.chatEvent, messagePackage)
+               
+                console.log(messagePackage,"--------messagePackage--------");
+
+
+                SocketEventsBus.emit('chat-event', messagePackage)
                 console.log('---------接收---------', messagePackage, '-----------消息包------');
                 const {web_request_id = null} = messagePackage.map || {};
-                // 处理自己本地发送的消息
-                if (web_request_id && this.eventPoll.has(web_request_id)) {
-                    const eventItem = this.eventPoll.get(web_request_id)!;
-                    eventItem.response = messagePackage;
-                    eventItem.status = 'end'; // todo status属性的修改最好写在最后,写在前面好像也没啥问题
-                }
+
+                    // 处理自己本地发送的消息
+                    if (web_request_id && this.eventPoll.has(web_request_id)) {
+                        const eventItem = this.eventPoll.get(web_request_id)!;
+                        eventItem.response = messagePackage;
+                        eventItem.status = 'end'; // todo status属性的修改最好写在最后,写在前面好像也没啥问题
+                    }
             } catch (e) {
+                // console.log(  '--------------------------', e,"-------------------");
+                
 
             }
         }