# WebRTCSignalServerWeb · 信令服务器后台管理系统 基于 **Vue 3 + Vite + TypeScript + Pinia + Vue Router + Element Plus** 的管理后台, 技术栈与目录组织参考 [`vue-vben-admin`](https://github.com/vbenjs/vue-vben-admin), 用于管理 `WebRTCSignalServer`(Spring Boot WebSocket 信令服务器)。 ## 功能概览 | 页面 | 说明 | | --- | --- | | 仪表盘 | 在线设备 / 主控端 / 被控端 / 待确认连接统计、设备类型分布饼图、信令流量柱状图、最近在线设备 | | 设备管理 | 查看已注册设备(ID、类型、在线状态、上线时间),支持按类型筛选与自动刷新 | | 连接请求 | 查看主控端发起、等待被控端确认的连接请求(去重 / 超时治理后的待决列表) | | 服务器信息 | 运行时长(实时)、在线数、峰值会话、累计注册与信令流量明细 | | 系统配置 | 连接治理参数(去重窗口、确认超时、WebSocket 端点)与管理令牌说明 | 数据来源于服务器新增的 `GET /api/admin/**` 接口,由 `AdminAuthFilter` 统一鉴权。 ## 目录结构 ``` WebRTCSignalServerWeb/ ├─ public/ # 静态资源(favicon 等) ├─ src/ │ ├─ api/ # axios 实例与管理接口封装 │ ├─ components/ # 通用组件(StatCard) │ ├─ layout/ # 基础布局 + 侧边栏 + 顶栏 │ ├─ router/ # 路由与鉴权守卫 │ ├─ stores/ # Pinia 状态(用户/令牌) │ ├─ styles/ # 全局样式 │ ├─ views/ # 各业务页面 │ ├─ App.vue / main.ts ├─ .env # 后端地址与默认令牌 ├─ vite.config.ts / tsconfig.json └─ package.json ``` ## 快速开始 ### 1. 启动信令服务器(提供 API) 服务器需 Java 21+(当前 `pom.xml` 指定 Java 25)与 Maven: ```bash cd WebRTCSignalServer mvn spring-boot:run # 默认端口 8080,管理令牌默认 admin.token = webrtc-admin-token ``` > 可在 `src/main/resources/application.yml` 修改 `admin.token`,或用环境变量 > `ADMIN_TOKEN` 覆盖。 ### 2. 启动管理后台 ```bash cd WebRTCSignalServerWeb npm install npm run dev # http://localhost:5180 ``` 构建生产包: ```bash npm run build # 产物在 dist/ npm run preview # 本地预览构建产物 ``` ## 配置说明 `.env` 关键变量: | 变量 | 默认值 | 说明 | | --- | --- | --- | | `VITE_API_BASE` | `http://localhost:8080` | 后端信令服务器地址 | | `VITE_ADMIN_TOKEN` | `webrtc-admin-token` | 默认管理令牌(需与服务器一致) | 登录时使用 `admin.token` 作为令牌;鉴权通过后会以 `X-Admin-Token` 请求头随后续接口发送。令牌错误将返回 401 并跳转登录页。 ## 接口一览(服务器侧新增) | 方法 | 路径 | 说明 | | --- | --- | --- | | GET | `/api/admin/dashboard` | 仪表盘汇总数据 | | GET | `/api/admin/devices?type=` | 设备列表(可按 CONTROLLER / CONTROLLED 过滤) | | GET | `/api/admin/connections` | 待确认连接请求 | | GET | `/api/admin/config` | 连接治理配置项 | | GET | `/api/admin/health` | 健康检查(登录校验也走此接口) |