Bläddra i källkod

fix: 调整websocket地址并恢复token获取与定时更新逻辑

1.  将yweb_socket的websocket地址从wss://yjs.cocorobo.cn改为wss://yrs.cocorobo.cn
2.  取消注释开发环境authUrl获取逻辑,恢复websocket连接前的token获取代码
3.  恢复定时更新认证token的逻辑
lsc 3 veckor sedan
förälder
incheckning
12105a1185
2 ändrade filer med 29 tillägg och 29 borttagningar
  1. 2 2
      src/services/course.ts
  2. 27 27
      src/views/Student/index.vue

+ 2 - 2
src/services/course.ts

@@ -1,8 +1,8 @@
 import axios from './config'
 
 export const API_URL = 'https://pbl.cocorobo.cn/api/pbl/'
-export const yweb_socket = 'wss://yjs.cocorobo.cn'
-// export const yweb_socket = 'wss://yrs.cocorobo.cn'
+// export const yweb_socket = 'wss://yjs.cocorobo.cn'
+export const yweb_socket = 'wss://yrs.cocorobo.cn'
 
 /**
  * 获取课程详情

+ 27 - 27
src/views/Student/index.vue

@@ -4062,17 +4062,17 @@ const getAuthToken = async (): Promise<string> => {
     }
 
     let authUrl = ''
-    if (isDev) {
-      // 开发环境使用 vite 代理
-      authUrl = '/yjs-auth/auth/token'
-    }
-    else {
-      // 生产环境:如果服务器有代理则使用代理,否则直接访问(需要服务器配置 CORS)
-      // 或者通过后端 API 获取 token
-      let baseUrl = 'https://yjsredis.cocorobo.cn/'
-      baseUrl = baseUrl.replace(/\/+$/, '')
-      authUrl = `${baseUrl}/auth/token`
-    }
+    // if (isDev) {
+    //   // 开发环境使用 vite 代理
+    //   authUrl = '/yjs-auth/auth/token'
+    // }
+    // else {
+    // 生产环境:如果服务器有代理则使用代理,否则直接访问(需要服务器配置 CORS)
+    // 或者通过后端 API 获取 token
+    let baseUrl = 'https://yjsredis.cocorobo.cn/'
+    baseUrl = baseUrl.replace(/\/+$/, '')
+    authUrl = `${baseUrl}/auth/token`
+    // }
 
     console.log('🔐 获取认证 token,URL:', authUrl)
     const response = await axios.get(authUrl)
@@ -4144,17 +4144,17 @@ const createWebSocketConnection = async (type = 1) => {
     }
     
     // 获取认证 token
-    // try {
-    //   authToken.value = await getAuthToken()
-    //   console.log('🔐 认证 token 获取成功,准备连接 WebSocket')
-    // }
-    // catch (error) {
-    //   console.error('🔐 获取认证 token 失败,连接可能失败:', error)
-    //   connectionStatus.value = 'disconnected'
-    //   isConnecting.value = false
-    //   handleDisconnection()
-    //   return
-    // }
+    try {
+      authToken.value = await getAuthToken()
+      console.log('🔐 认证 token 获取成功,准备连接 WebSocket')
+    }
+    catch (error) {
+      console.error('🔐 获取认证 token 失败,连接可能失败:', error)
+      connectionStatus.value = 'disconnected'
+      isConnecting.value = false
+      handleDisconnection()
+      return
+    }
 
     docSocket.value = new Y.Doc()
     docSocket.value.gc = true
@@ -4162,15 +4162,15 @@ const createWebSocketConnection = async (type = 1) => {
       api.yweb_socket,
       'PPT' + props.courseid,
       docSocket.value,
-      // { params: { yauth: authToken.value } }
+      { params: { yauth: authToken.value } }
     )
     
     // 启动定期更新 token
     // 30分钟后再次更新
-    // if (authTokenUpdateTimer.value) {
-    //   clearTimeout(authTokenUpdateTimer.value)
-    // }
-    // authTokenUpdateTimer.value = setTimeout(updateAuthToken, 30 * 60 * 1000) as unknown as NodeJS.Timeout
+    if (authTokenUpdateTimer.value) {
+      clearTimeout(authTokenUpdateTimer.value)
+    }
+    authTokenUpdateTimer.value = setTimeout(updateAuthToken, 30 * 60 * 1000) as unknown as NodeJS.Timeout
 
     providerSocket.value.on('status', (event: any) => {
       console.log('👉 WebSocket状态:', event.status)