Files
VibeCoding/WebRTCSignalServerWeb/README.md

89 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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` | 健康检查(登录校验也走此接口) |