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