docs(plan): 更新路线图,标记 WebSocket 完成,调整待办优先级

This commit is contained in:
xfy911 2026-06-05 15:19:07 +08:00
parent 2775033198
commit 3ded38f331

View File

@ -31,14 +31,15 @@
- **multipart/form-data 文件上传**(保存到 root_dir/uploads/)✅ 2026-06-04
- [x] C 语言单元测试框架 ✅ 2026-06-03Unity 框架127 个测试全部通过)
### Phase 3 — 扩展
### Phase 3 — 扩展(已完成)
- [x] **配置文件支持** — JSON 配置替代纯命令行 ✅ 2026-06-04
- [x] **Brotli 压缩** — 比 gzip 更高压缩率 ✅ 2026-06-04
- [x] **HTTPS / TLS** — OpenSSL Memory BIO 集成,支持命令行与配置文件启用 ✅ 2026-06-04
- [x] **HTTP/2** — nghttp2 完整实现TLS ALPN 协商 + 静态文件服务 + 缓存 + 目录浏览)✅ 2026-06-04
- [x] **h2c 升级支持** — 明文 HTTP/2PRI 魔术字直接连接 + Upgrade: h2c 协商)✅ 2026-06-04
- [x] **HTTP/2 目录浏览** — 目录无 index.html 时返回目录列表 ✅ 2026-06-04
- [ ] Windows 兼容性
- [x] **WebSocket 支持** — RFC 6455 握手 + 帧解析/编码 + echo 服务器 ✅ 2026-06-05
- [ ] Windows 兼容性(阻塞:需 coco 提供 Windows I/O 后端)
### Phase 4 — 生态
- [ ] WebSocket 支持
@ -48,9 +49,10 @@
## 当前状态
- 编译通过,零警告(除 coco 子模块的 linker .note.GNU-stack 提示)
- **59 项集成测试全部通过**(新增 5 项访问日志测试)
- **35 个单元测试全部通过**Unity 框架)
- **61 项集成测试全部通过**(新增 2 项 WebSocket 测试)
- **127 个单元测试全部通过**Unity 框架)
- 压测数据wrk -t4 -c100 -d10s → 16,179 RPS平均延迟 59.86μs
- WebSocket 支持RFC 6455 握手、文本/二进制帧 echo、ping/pong/close
- **coco v2.2.0 压测**wrk -t4 -c100 -d10s → 15,056 RPS平均延迟 64.49μs单线程模式性能在合理范围内
- 多线程模式(-t -w 4当前存在连接问题待排查
- POST 支持JSON 和 form-urlencoded 回显multipart 文件上传Content-Length 解析8MB 上限
@ -62,13 +64,26 @@
## 待办池
1. **[高] 多线程模式修复** — `accept_loop` 主线程不在协程上下文中,`client_handler` 在非阻塞 fd 上 busy loop导致请求无法处理。需让 accept_loop 通过 `coco_go` 在调度器中运行,或使用 `coco_accept` / `poll` 等待 I/O。
2. **[中] Windows 兼容性** — 平台抽象层platform.h / platform.csendfile 替代方案io_uring 替代方案
3. **[中] Doxygen 中文注释** — http2.c 已完成其余模块tls.c, config.c, multipart.c 等)待补充
4. **[已完成] ~~检查远程更新内容~~** — 上游 coco v2.2.0 已 review 并升级b45045e
1. **[已完成] ~~多线程模式修复~~** — ✅ 2026-06-05 已修复(主线程 accept + pollclient_handler 1MB 协程栈)
2. **[高] Phase 4 生态功能** — WebSocket 广播/消息路由、中间件机制、插件系统
3. **[中] 完善 WebSocket 功能** — 消息路由、广播、连接管理面板
4. **[中] Windows 兼容性** — 阻塞coco 当前仅支持 epoll/kqueue/io_uring无 Windows IOCP 后端
5. **[低] Doxygen 中文注释** — tls.c, config.c, multipart.c, access_log.c, main.c 等模块待补充
6. **[低] 性能优化** — 连接池复用、零拷贝优化、压缩预缓存
## 最近行动记录
- **2026-06-05: 本轮行动 — 实现 WebSocket 支持RFC 6455**
- 新增 `websocket.h` / `websocket.c`WebSocket 协议完整实现
- 帧解析:支持 FIN、opcode、payload length7/16/64 位、mask 解掩码
- 帧编码:服务器端发送(无掩码),支持文本/二进制/close/ping/pong
- 握手Sec-WebSocket-Key + SHA1 + Base64 计算 Accept
- `server.c`:添加 `is_websocket_upgrade_request()` 检测,握手后进入 `ws_handle_connection()`
- 连接处理:文本/二进制 echo、ping/pong 自动响应、close 帧处理
- 集成测试:`tests/websocket_test.py`Python 标准库,零依赖)
- 编译通过,零警告
- **61 项集成测试全部通过127 个单元测试全部通过**
- 推送到 main2775033
- **2026-06-05: 本轮行动 — 升级 coco 子模块到 v2.2.0**
- 检查 upstream 新提交:发现 release 2.2.0,包含调度器重大改进
- 主要更新:负载重分配、热栈迁移槽位释放、调度器停止时状态清理、原子减量修复