Files
DRS9.Dashboard/README.md
2026-01-13 13:50:27 +08:00

175 lines
7.4 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.

# 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 - 优化完善
- [ ] 性能优化
- [ ] 监控告警
- [ ] 部署文档
- [ ] 用户手册
---
## 许可证
待定