feat(room): 增加加入令牌及分块传输支持

- 后端Room和MessagePayload新增加入令牌字段,创建房间返回包含令牌
- 新增房间加入令牌验证接口,加入时需提供房间号和令牌
- 前端HomeView新增加入令牌输入框及验证逻辑
- Clipboard工具增加写入API支持及复制按钮
- FileDropZone支持选择文件夹批量上传
- FileMessage和ImageMessage新增分片进度提示及失败重试功能
- API层新增分块上传及断点续传实现,支持大文件分片上传
- 文件上传存储时计算文件sha256,响应中返回该值
- 下载接口支持断点续传,优化大文件下载体验
- README新增加入令牌安全说明及压力测试使用示例
- 资源清理与配置优化,添加磁盘使用水位阈值控制
This commit is contained in:
2026-03-06 03:15:18 +08:00
parent ed07dfaa2e
commit 1c99136944
23 changed files with 1448 additions and 124 deletions

View File

@@ -2,6 +2,8 @@
基于 WebSocket 的轻量级数据传输工具,适用于 VNC/远程桌面、内网隔离等场景。
> 安全更新:创建房间后会生成 8 位加入令牌,加入方需同时提供「房间号 + 令牌」。
## 技术栈
- **后端**: Spring Boot 3.2.5 + Java 17 + WebSocket (STOMP/SockJS)
@@ -112,6 +114,19 @@ DataTool/
后续功能开发请参考 `docs/` 目录下的详细文档。
## 压力测试
仓库提供压测脚本:`scripts/load-test.mjs`,支持直传与分块模式。
示例:
```bash
LOAD_BASE_URL="http://127.0.0.1:18080" LOAD_MODE=direct LOAD_CONCURRENCY=8 LOAD_REQUESTS=64 LOAD_FILE_KB=512 node scripts/load-test.mjs
LOAD_BASE_URL="http://127.0.0.1:18080" LOAD_MODE=chunked LOAD_CONCURRENCY=4 LOAD_REQUESTS=24 LOAD_FILE_KB=8192 node scripts/load-test.mjs
```
本次基线结果见:`docs/12-压力测试报告.md`。
## 许可证
[待定]