Files
DRS9.Dashboard/README.md

175 lines
7.4 KiB
Markdown
Raw Normal View History

2026-01-13 13:50:27 +08:00
# DRS9 信息发布系统
## 系统概述
一套企业级看板信息发布管理系统,支持企业内部数据大屏展示和公共场所信息发布。系统采用 C/S + B/S 混合架构,通过服务器端统一管理内容分发和设备控制。
### 应用场景
- **企业内部**数据大屏、会议显示、KPI 展示、公告发布
- **公共场所**:学校信息发布、商场广告、车站信息发布、医院导诊显示
---
## 系统架构
```
┌─────────────────────────────────────────────────────────────────┐
│ 服务器端 (ASP.NET Core) │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 内容管理 │ │ 设备管理 │ │ 用户管理 │ │ 推送服务 │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
│ │ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ WebSocket 实时通信 │ │
│ └──────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
┌───────────────┴───────────────┐
▼ ▼
┌─────────────────────┐ ┌─────────────────────┐
│ 移动客户端 App │ │ 浏览器客户端 │
│ (Android/iOS/Win) │ │ (Web) │
│ - 内容展示 │ │ - 内容展示 │
│ - WebSocket 长连接 │ │ - 短连接/轮询 │
│ - 自动升级 │ │ - 临时访问授权 │
└─────────────────────┘ └─────────────────────┘
```
---
## 技术选型
### 服务器端
- **框架**ASP.NET Core 8.0+
- **通信**WebSocket (实时)、REST API (配置管理)
- **数据库**SQLite (单机) / PostgreSQL/MySQL (集群)
- **缓存**:内存缓存 / Redis (分布式)
### 客户端
- **移动端**.NET MAUI / Flutter (跨平台)
- **Web端**Vue 3 / React
---
## 功能模块
### 服务器端
#### 1. 内容管理模块
- **应用类型**:数据看板、网页轮转器、图片轮播、视频播放
- **内容编排**:支持多内容组合、定时切换、优先级控制
- **URL 管理**:每个应用对应一个服务器端 URL 地址
#### 2. 设备管理模块
- **设备注册**:设备码激活绑定
- **设备分组**:按区域/部门批量管理
- **远程控制**:推送内容、重启应用、禁用设备、升级 App
- **状态监控**:在线状态、内容加载情况、设备信息
#### 3. 授权认证模块
- **认证方式**:设备码(首次注册) + Token日常通信
- **设备码格式**`XXX-XXX-XXX`(如 `ABC-123-XYZ`
- **Token 类型**JWT包含设备 ID、权限、过期时间
#### 4. 推送服务模块
- **实时推送**:通过 WebSocket 推送内容更新、指令
- **指令类型**:刷新内容、切换应用、重启、截图上报
- **离线消息**:设备离线时消息持久化,上线后推送
### 客户端
#### 1. 移动客户端 App
- **配置简化**:仅需设置服务器地址
- **自动获取**:内容 URL 由服务器动态分配
- **长连接**WebSocket 保持与服务器连接
- **自动升级**:支持服务器推送的版本更新
#### 2. 浏览器客户端
- **访问方式**:通过授权链接或设备码访问
- **实时同步**WebSocket 或短轮询获取更新
- **临时授权**:支持限时访问 Token
---
## 设备授权流程
```
┌─────────┐ 设备码 ┌─────────┐ 验证+Token ┌─────────┐
│ 客户端 │ ───────────────→ │ 服务器端 │ ───────────────→ │ 客户端 │
└─────────┘ └─────────┘ └─────────┘
│ │ │
│ 激活请求(设备码) │ │
│ ABC-123-XYZ │ │
│ │ │
│ ┌─────────────────┐ │
│ │ 验证设备码 │ │
│ │ 绑定设备身份 │ │
│ │ 生成 JWT Token │ │
│ └─────────────────┘ │
│ │ │
│ 返回 Token │ │
│ ←───────────────────────── │
│ │ │
│ 后续请求携带 Token │
│ ────────────────────────────────────────────────────────→│
```
---
## 数据库设计(草案)
### 表结构
- `devices` - 设备信息表
- `device_groups` - 设备分组表
- `applications` - 应用内容表
- `device_assignments` - 设备与应用分配表
- `users` - 用户管理表
- `audit_logs` - 操作审计日志
---
## 部署要求
### 服务器端
- **操作系统**Linux (推荐) / Windows Server
- **运行时**.NET 8.0 Runtime
- **端口**HTTP (8080)、HTTPS (8443)、WebSocket (同端口)
- **内存**:最低 2GB推荐 4GB+
### 客户端
- **移动端**Android 8.0+ / iOS 12+
- **Windows**Windows 10+
---
## 开发计划
### Phase 1 - 基础框架
- [ ] 服务器端项目搭建
- [ ] 数据库设计与迁移
- [ ] 设备注册与认证
- [ ] WebSocket 通信基础
### Phase 2 - 核心功能
- [ ] 内容管理模块
- [ ] 设备管理模块
- [ ] 推送服务模块
- [ ] 移动端 App 基础框架
### Phase 3 - 高级功能
- [ ] 内容编排与定时切换
- [ ] 设备分组批量管理
- [ ] 自动升级功能
- [ ] 浏览器客户端
### Phase 4 - 优化完善
- [ ] 性能优化
- [ ] 监控告警
- [ ] 部署文档
- [ ] 用户手册
---
## 许可证
待定