吉安感知网项目-前端
张含笑
2026-01-17 5ccb1d9588ae0a68f0c21cd91eb021d637c1f953
feat:调整
2 files modified
52 ■■■■■ changed files
uniapps/work-app/src/hooks/useGlobalWS.js 25 ●●●● patch | view | raw | blame | history
uniapps/work-app/src/utils/websocket.js 27 ●●●● patch | view | raw | blame | history
uniapps/work-app/src/hooks/useGlobalWS.js
@@ -20,7 +20,6 @@
    // const bizCode = payload.biz_code || ''
    callStatus.value = t
    console.log('📋 消息分析:type=' + t )
    console.log('222222222222222222',t,'----------------',callStatus.value,'----------------')
    // 处理语音通话请求
    if (t === 'call') {
      console.log('📞 全局收到来电 call,来自', payload.from)
@@ -93,38 +92,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 }
  )
}
uniapps/work-app/src/utils/websocket.js
@@ -34,10 +34,10 @@
      this.socketTask = uni.connectSocket({
        url: this.url,
        success: () => {
          console.log('WebSocket连接已请求')
          // console.log('WebSocket连接已请求')
        },
        fail: (error) => {
          console.error('WebSocket连接请求失败:', error)
          // console.error('WebSocket连接请求失败:', error)
          if (this.onErrorCallback) {
            this.onErrorCallback(error)
          }
@@ -47,7 +47,7 @@
      // 监听连接打开
      this.socketTask.onOpen(() => {
        this.connected = true
        console.log('WebSocket已连接,userId:', this.userId)
        // console.log('WebSocket已连接,userId:', this.userId)
        this.startPing()
        if (this.onOpenCallback) {
          this.onOpenCallback()
@@ -57,7 +57,7 @@
      // 监听连接关闭
      this.socketTask.onClose(() => {
        this.connected = false
        console.log('WebSocket已关闭')
        // console.log('WebSocket已关闭')
        this.stopPing()
        if (this.onCloseCallback) {
          this.onCloseCallback()
@@ -66,7 +66,7 @@
      // 监听连接错误
      this.socketTask.onError((error) => {
        console.error('WebSocket错误:', error)
        // console.error('WebSocket错误:', error)
        this.connected = false
        this.stopPing()
        if (this.onErrorCallback) {
@@ -78,16 +78,16 @@
      this.socketTask.onMessage((res) => {
        try {
          const message = JSON.parse(res.data)
          console.log('收到WebSocket消息:', message)
          // console.log('收到WebSocket消息:', message)
          if (this.onMessageCallback) {
            this.onMessageCallback(message)
          }
        } catch (error) {
          console.error('解析WebSocket消息失败:', error)
          // console.error('解析WebSocket消息失败:', error)
        }
      })
    } catch (error) {
      console.error('WebSocket连接失败:', error)
      // console.error('WebSocket连接失败:', error)
      if (this.onErrorCallback) {
        this.onErrorCallback(error)
      }
@@ -112,11 +112,11 @@
    this.socketTask.send({
      data: JSON.stringify(message),
      success: () => {
        console.log('WebSocket消息发送成功:', message)
        // console.log('WebSocket消息发送成功:', message)
        useGlobalWS();
      },
      fail: (error) => {
        console.error('WebSocket消息发送失败:', error)
        // console.error('WebSocket消息发送失败:', error)
      }
    })
  }
@@ -129,7 +129,7 @@
      if (this.connected) {
        this.send('ping', 'system')
      }
    }, 25000)
    }, 2000)
  }
  // 停止心跳检测
@@ -147,10 +147,10 @@
        code: 1000,
        reason: '正常关闭',
        success: () => {
          console.log('WebSocket已关闭')
          // console.log('WebSocket已关闭')
        },
        fail: (error) => {
          console.error('WebSocket关闭失败:', error)
          // console.error('WebSocket关闭失败:', error)
        }
      })
      this.socketTask = null
@@ -161,7 +161,6 @@
  // 设置消息回调
  setOnMessageCallback(callback) {
    console.log('🔔 WebSocket消息回调已设置')
    this.onMessageCallback = callback
  }