吉安感知网项目-前端
shuishen
2026-02-03 89380e6260a75d1d3b94de687ebcc2f50d50659d
uniapps/work-app/src/hooks/useGlobalWS.js
@@ -14,13 +14,12 @@
   // 消息处理
  function messageHandler(payload) {
    console.log('🌐 全局WebSocket收到消息111111111111111111111:', payload)
    // console.log('🌐 全局WebSocket收到消息111111111111111111111:', payload)
    // 先尝试直接处理消息(适用于mobile-web-view的voiceCallDetail页面的消息格式)
    const t = (payload.type || '').toString()
    // const bizCode = payload.biz_code || ''
    callStatus.value = t
    console.log('📋 消息分析:type=' + t )
    console.log('222222222222222222',t,'----------------',callStatus.value,'----------------')
    // console.log('📋 消息分析:type=' + t )
    // 处理语音通话请求
    if (t === 'call') {
      console.log('📞 全局收到来电 call,来自', payload.from)
@@ -78,10 +77,7 @@
  // 初始化WebSocket连接
  function initWS() {
    try {
      if (callStatus.value === 'accept') {
        console.log('📞 通话中,跳过WebSocket初始化');
        return;
      }
      websocketService.setOnMessageCallback(messageHandler);
      // 获取当前用户ID,优先使用store中的用户信息
@@ -93,38 +89,22 @@
        websocketService.init(userId, WS_BASE);
        // console.log('🌐 全局WebSocket初始化成功,用户ID:', userId);
      } else {
        // websocketService.connect();
        websocketService.connect();
      }
    } catch (error) {
      // console.error('❌ 全局WebSocket初始化失败:', error);
    }
  }
  // 监听用户信息变化,初始化WebSocket
  watch(
    () => [userStore.userInfo, callStatus.value],
    ([newUserInfo,newValue]) => {
      if (newValue === 'accept') {
        console.log('📞 通话中,跳过WebSocket初始化');
        return;
      }
      // 不管是否有连接,都调用initWS来确保连接和消息处理器正常
      initWS();
    },
    { immediate: true, deep: true }
  )
  watch(
    () => callStatus.value,
    (newValue) => {
      console.log('监听callStatus.value',newValue);
      if (newValue === 'accept') {
        console.log('📞 通话中,跳过WebSocket初始化');
        return;
      }
      websocketService.connect();
    }
      initWS();
    },
    { immediate: true, deep: true }
  )
}