This commit is contained in:
2025-09-22 16:11:34 +08:00
parent d6b09b7d23
commit 95ecde2788

View File

@@ -253,29 +253,35 @@ const SSEManager = {
this.connection = src this.connection = src
const username = getUsernameFromToken(token) const username = getUsernameFromToken(token)
console.log('SSE连接详情:', { console.log('=== SSE连接初始化 ===')
url: sseUrl, console.log('连接URL:', sseUrl)
username, console.log('用户名:', username)
clientId, console.log('客户端ID:', clientId)
sessionKey: `${username}:${clientId}`, console.log('预期sessionKey:', `${username}:${clientId}`)
token: token.substring(0, 20) + '...', console.log('完整连接URL:', `${sseUrl}?clientId=${clientId}&token=${token.substring(0, 20)}...`)
fullUrl: `${sseUrl}?clientId=${clientId}&token=${token.substring(0, 20)}...`
})
src.onopen = () => { src.onopen = () => {
console.log('=== SSE连接成功 ===')
console.log('✅ SSE连接已成功打开') console.log('✅ SSE连接已成功打开')
console.log('连接状态:', src.readyState) // 0=CONNECTING, 1=OPEN, 2=CLOSED console.log('连接状态:', src.readyState, '(0=CONNECTING, 1=OPEN, 2=CLOSED)')
console.log('连接URL:', src.url)
console.log('连接时间:', new Date().toLocaleTimeString())
} }
src.onmessage = (e) => { src.onmessage = (e) => {
console.log('=== SSE消息接收 ===')
console.log('📨 SSE收到原始消息:', e) console.log('📨 SSE收到原始消息:', e)
console.log('事件类型:', e.type)
console.log('消息数据:', e.data) console.log('消息数据:', e.data)
console.log('接收时间:', new Date().toLocaleTimeString())
this.handleMessage(e) this.handleMessage(e)
} }
src.onerror = (e) => { src.onerror = (e) => {
console.log('=== SSE连接错误 ===')
console.error('❌ SSE连接错误:', e) console.error('❌ SSE连接错误:', e)
console.log('连接状态:', src.readyState) console.log('连接状态:', src.readyState)
console.log('错误时间:', new Date().toLocaleTimeString())
this.handleError() this.handleError()
} }
} catch (e) { } catch (e) {
@@ -285,29 +291,35 @@ const SSEManager = {
handleMessage(e: MessageEvent) { handleMessage(e: MessageEvent) {
try { try {
console.log('=== SSE消息处理 ===')
console.log('原始消息数据:', e.data)
const payload = JSON.parse(e.data) const payload = JSON.parse(e.data)
console.log('SSE消息解析:', payload) console.log('解析后的消息:', payload)
console.log('事件类型:', payload.type)
console.log('消息内容:', payload.message)
switch (payload.type) { switch (payload.type) {
case 'DEVICE_REMOVED': case 'DEVICE_REMOVED':
console.log('收到设备移除事件正在执行logout') console.log('🚨 收到设备移除事件正在执行logout')
logout() logout()
ElMessage.warning('您的设备已被移除,请重新登录') ElMessage.warning('您的设备已被移除,请重新登录')
break break
case 'FORCE_LOGOUT': case 'FORCE_LOGOUT':
console.log('收到强制退出事件正在执行logout') console.log('🚨 收到强制退出事件正在执行logout')
logout() logout()
ElMessage.warning('会话已失效,请重新登录') ElMessage.warning('会话已失效,请重新登录')
break break
case 'PERMISSIONS_UPDATED': case 'PERMISSIONS_UPDATED':
console.log('收到权限更新事件,重新检查权限') console.log('🔄 收到权限更新事件,重新检查权限')
checkAuth() checkAuth()
break break
default: default:
console.log('收到未知SSE事件:', payload.type) console.log('收到未知SSE事件:', payload.type, payload)
} }
} catch (err) { } catch (err) {
console.error('SSE消息处理失败:', err) console.error('SSE消息处理失败:', err)
console.error('原始数据:', e.data)
} }
}, },