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