1
This commit is contained in:
@@ -212,8 +212,13 @@ function getClientIdFromToken(token?: string) {
|
|||||||
try {
|
try {
|
||||||
const t = token || localStorage.getItem('token') || ''
|
const t = token || localStorage.getItem('token') || ''
|
||||||
const payload = JSON.parse(atob(t.split('.')[1] || ''))
|
const payload = JSON.parse(atob(t.split('.')[1] || ''))
|
||||||
return payload.clientId || ''
|
const clientId = payload.clientId || ''
|
||||||
} catch { return '' }
|
console.log('从token解析clientId:', { token: t?.substring(0, 20) + '...', clientId })
|
||||||
|
return clientId
|
||||||
|
} catch (e) {
|
||||||
|
console.warn('解析token中的clientId失败:', e)
|
||||||
|
return ''
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function getUsernameFromToken(token?: string) {
|
function getUsernameFromToken(token?: string) {
|
||||||
@@ -247,14 +252,27 @@ const SSEManager = {
|
|||||||
const src = new EventSource(`${sseUrl}?clientId=${clientId}&token=${token}`)
|
const src = new EventSource(`${sseUrl}?clientId=${clientId}&token=${token}`)
|
||||||
this.connection = src
|
this.connection = src
|
||||||
|
|
||||||
console.log('SSE连接已建立:', sseUrl)
|
console.log('SSE连接详情:', {
|
||||||
src.onopen = () => console.log('SSE连接打开')
|
url: sseUrl,
|
||||||
|
clientId,
|
||||||
|
token: token.substring(0, 20) + '...',
|
||||||
|
fullUrl: `${sseUrl}?clientId=${clientId}&token=${token.substring(0, 20)}...`
|
||||||
|
})
|
||||||
|
|
||||||
|
src.onopen = () => {
|
||||||
|
console.log('✅ SSE连接已成功打开')
|
||||||
|
console.log('连接状态:', src.readyState) // 0=CONNECTING, 1=OPEN, 2=CLOSED
|
||||||
|
}
|
||||||
|
|
||||||
src.onmessage = (e) => {
|
src.onmessage = (e) => {
|
||||||
console.log('SSE收到消息:', e.data)
|
console.log('📨 SSE收到原始消息:', e)
|
||||||
|
console.log('消息数据:', e.data)
|
||||||
this.handleMessage(e)
|
this.handleMessage(e)
|
||||||
}
|
}
|
||||||
|
|
||||||
src.onerror = (e) => {
|
src.onerror = (e) => {
|
||||||
console.log('SSE连接错误:', e)
|
console.error('❌ SSE连接错误:', e)
|
||||||
|
console.log('连接状态:', src.readyState)
|
||||||
this.handleError()
|
this.handleError()
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
@@ -265,17 +283,29 @@ const SSEManager = {
|
|||||||
handleMessage(e: MessageEvent) {
|
handleMessage(e: MessageEvent) {
|
||||||
try {
|
try {
|
||||||
const payload = JSON.parse(e.data)
|
const payload = JSON.parse(e.data)
|
||||||
|
console.log('SSE消息解析:', payload)
|
||||||
|
|
||||||
switch (payload.type) {
|
switch (payload.type) {
|
||||||
case 'DEVICE_REMOVED':
|
case 'DEVICE_REMOVED':
|
||||||
|
console.log('收到设备移除事件,正在执行logout')
|
||||||
|
logout()
|
||||||
|
ElMessage.warning('您的设备已被移除,请重新登录')
|
||||||
|
break
|
||||||
case 'FORCE_LOGOUT':
|
case 'FORCE_LOGOUT':
|
||||||
|
console.log('收到强制退出事件,正在执行logout')
|
||||||
logout()
|
logout()
|
||||||
ElMessage.warning('会话已失效,请重新登录')
|
ElMessage.warning('会话已失效,请重新登录')
|
||||||
break
|
break
|
||||||
case 'PERMISSIONS_UPDATED':
|
case 'PERMISSIONS_UPDATED':
|
||||||
|
console.log('收到权限更新事件,重新检查权限')
|
||||||
checkAuth()
|
checkAuth()
|
||||||
break
|
break
|
||||||
|
default:
|
||||||
|
console.log('收到未知SSE事件:', payload.type)
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
console.error('SSE消息处理失败:', err)
|
||||||
}
|
}
|
||||||
} catch {}
|
|
||||||
},
|
},
|
||||||
|
|
||||||
handleError() {
|
handleError() {
|
||||||
|
|||||||
Reference in New Issue
Block a user