fix: 修复 WebRTC 控制稳定性与输入事件重复问题

- 修复安卓端 401 拦截器线程问题,确保 Toast 在主线程执行
- 修复 Web 端按键/触摸重复触发:增加按下状态跟踪,防止悬停触发动作和长按重复
- 修复 Web 端指针取消时未释放触摸状态导致被控端卡死
- 修复 TURN 未启用时返回 401 导致客户端异常登出,改为返回 enabled=false
- 修复后台管理端 401 后路由守卫跳转失败
- 增加控制指令调试日志用于排查问题
This commit is contained in:
TongTongStudio
2026-08-04 02:40:23 +08:00
parent 1bd0318d35
commit 9b0e105647
7 changed files with 86 additions and 13 deletions

View File

@@ -1,6 +1,7 @@
import axios from 'axios';
import { ElMessage } from 'element-plus';
import router from '@/router';
import { useUserStore } from '@/stores/user';
/**
* 请求基地址。
@@ -39,10 +40,11 @@ request.interceptors.response.use(
(error) => {
const status = error.response?.status;
if (status === 401) {
localStorage.removeItem('admin_token');
// 清空 store 内存与 localStorage 中的令牌,避免路由守卫因内存 token 残留把登录页弹回首页
useUserStore().logout();
ElMessage.error('登录已失效,请重新登录');
if (router.currentRoute.value.name !== 'login') {
router.replace({ name: 'login' });
if (router.currentRoute.value.name !== 'Login') {
router.replace({ name: 'Login' });
}
} else {
ElMessage.error(error.response?.data?.message || error.message || '请求失败');