docs(plan): 更新路线图,标记 WebSocket 广播完成,新增中间件/插件待办

This commit is contained in:
xfy911 2026-06-05 18:13:50 +08:00
parent 035e4bebb4
commit e542890e26

View File

@ -47,12 +47,16 @@
- [x] **Windows 兼容性** — 跨平台抽象层,支持 Linux/macOS/Windows(MinGW/MSVC) ✅ 2026-06-04
### Phase 4 — 生态
- [ ] WebSocket 广播/消息路由
- [x] **WebSocket 广播/频道路由** — 全局连接注册表 + 广播/定向发送 API ✅ 2026-06-05
- [ ] 中间件机制
- [ ] 插件系统
## 当前状态
- WebSocket 广播系统已上线:
- `ws_broadcast()` 全局广播、`ws_broadcast_to_path()` 按频道广播
- `ws_connection_count()` 连接计数
- 线程安全(链表 + mutex连接自动注册/注销
- 编译通过,零警告(除 coco 子模块的 linker .note.GNU-stack 提示)
- **61 项集成测试全部通过**GET/HEAD/POST/404/Range/304/gzip/brotli/MIME/目录浏览/路径防护/文件上传/TLS/HTTP/2/h2c/WebSocket/访问日志)
- **127 个单元测试全部通过**Unity 框架)
@ -64,15 +68,16 @@
- **TLS/HTTPS**OpenSSL 3.0 Memory BIO + coco 协程集成自签名证书支持ALPN 协商 h2/http1.1
- **HTTP/2**完整功能静态文件服务、目录浏览、缓存协商、压缩、HEAD 请求)
- **h2c**:明文 HTTP/2 支持prior knowledge + Upgrade 协商)
- **WebSocket**RFC 6455 握手、文本/二进制帧 echo、ping/pong/close
- **WebSocket**RFC 6455 握手、文本/二进制帧 echo、ping/pong/close、**广播/频道**
- **Windows 兼容性**:跨平台抽象层 platform.h + platform.cCMakeLists.txt 自动检测平台Makefile 在 Windows 下自动链接 ws2_32
## 待办池
1. **[高] Phase 4 生态功能** — WebSocket 广播/消息路由、中间件机制、插件系统
2. **[中] 完善 WebSocket 功能** — 消息路由、广播、连接管理面板
1. **[高] 中间件机制** — 请求处理前后 hook 系统允许插入自定义逻辑认证、限流、CORS
2. **[高] 插件系统** — 动态加载 .so/.dll 扩展
3. **[低] Doxygen 中文注释** — tls.c, config.c, multipart.c, access_log.c, main.c, websocket.c 等模块待补充
4. **[低] 性能优化** — 连接池复用、零拷贝优化、压缩预缓存
5. **[低] WebSocket 单元测试** — 为广播/注册表 API 添加 C 单元测试
## Windows 兼容性实现详情
@ -105,6 +110,17 @@
- `Makefile`:添加 `platform.c`Windows 下自动链接 `ws2_32`
- 单元测试127 个通过Linux 验证集成测试61 项通过
- 推送到 feature/windows-compat-impl
- 2026-06-05: **本轮行动 — WebSocket 广播/频道路由系统**
- `websocket.c`:新增全局连接注册表(链表 + pthread_mutex + 原子计数)
- `ws_registry_add/remove`: 连接自动注册/注销
- `ws_broadcast()`: 向所有活跃连接广播文本消息
- `ws_broadcast_to_path()`: 按握手路径(如 `/ws/chat`)定向广播
- `ws_connection_count()`: 获取当前连接数
- `ws_handle_connection()` 新增 `path` 参数,用于频道标识
- `server.c`:修改调用处,传入 `req.path` 作为频道
- `websocket.h`:新增广播 API 声明
- 编译零警告61 项集成测试 + 127 个单元测试全部通过
- 提交:`fix(coco)` 修正子模块 + `feat(websocket)` 广播系统
- 2026-06-05: **本轮行动 — 实现 WebSocket 支持RFC 6455**
- 新增 `websocket.h` / `websocket.c`WebSocket 协议完整实现
- 帧解析:支持 FIN、opcode、payload length7/16/64 位、mask 解掩码