Initial commit: DataTool backend, frontend and Docker

This commit is contained in:
liu
2026-01-31 00:51:14 +08:00
commit 59bb8e16f5
69 changed files with 9449 additions and 0 deletions

117
README.md Normal file
View File

@@ -0,0 +1,117 @@
# DataTool - 房间数据传输助手
基于 WebSocket 的轻量级数据传输工具,适用于 VNC/远程桌面、内网隔离等场景。
## 技术栈
- **后端**: Spring Boot 3.2.5 + Java 17 + WebSocket (STOMP/SockJS)
- **前端**: Vue 3 + TypeScript + Vite + TailwindCSS + Pinia
## 前置要求
### Java 版本要求
**重要**: 本项目需要 **Java 17 或更高版本**
当前检测到您的系统使用的是 Java 8需要升级
1. **下载并安装 Java 17+**
- 推荐使用 [Eclipse Temurin (Adoptium)](https://adoptium.net/)
- 或 [Oracle JDK](https://www.oracle.com/java/technologies/downloads/)
- 或 [Amazon Corretto](https://aws.amazon.com/corretto/)
2. **配置 JAVA_HOME 环境变量**
```powershell
# Windows PowerShell (管理员权限)
[System.Environment]::SetEnvironmentVariable('JAVA_HOME', 'C:\Program Files\Eclipse Adoptium\jdk-17.x.x-hotspot', 'Machine')
```
3. **验证 Java 版本**
```powershell
java -version
# 应该显示 java version "17.x.x" 或更高
mvn -v
# 应该显示 Java version: 17.x.x
```
### Node.js 版本要求
- Node.js 18+ 和 npm 9+
## 快速开始
### 后端启动
```bash
cd backend
mvn clean install
mvn spring-boot:run
```
后端将在 `http://localhost:8080` 启动WebSocket 端点为 `/ws`。
### 前端启动
```bash
cd frontend
npm install
npm run dev
```
前端将在 `http://localhost:5173` 启动。
## 项目结构
```
DataTool/
├── backend/ # Spring Boot 后端
│ ├── src/
│ │ ├── main/
│ │ │ ├── java/com/datatool/
│ │ │ │ ├── config/ # WebSocket 配置
│ │ │ │ ├── room/ # 房间与会话管理
│ │ │ │ ├── message/ # 消息模型
│ │ │ │ └── ws/ # WebSocket 控制器
│ │ │ └── resources/
│ │ │ └── application.yml
│ └── pom.xml
├── frontend/ # Vue 3 前端
│ ├── src/
│ │ ├── components/ # Vue 组件
│ │ ├── views/ # 页面视图
│ │ ├── stores/ # Pinia 状态管理
│ │ ├── ws/ # WebSocket 客户端
│ │ └── router/ # 路由配置
│ └── package.json
└── docs/ # 项目文档
```
## WebSocket 端点说明
- **连接端点**: `/ws` (支持 SockJS)
- **应用前缀**: `/app`
- **广播前缀**: `/topic`
### 主要消息路径
- 加入房间: `/app/room/{roomCode}/join`
- 发送消息: `/app/room/{roomCode}/message`
- 文件分片: `/app/room/{roomCode}/file/chunk`
- 房间广播: `/topic/room/{roomCode}`
- 文件分片广播: `/topic/room/{roomCode}/file/{fileId}`
## 开发计划
当前已完成基础架构搭建,包括:
- ✅ 后端 WebSocket/STOMP 配置
- ✅ 房间与会话管理
- ✅ 前端 Vue 3 + TypeScript + Tailwind 脚手架
- ✅ WebSocket 客户端封装
- ✅ 基础 UI 组件与布局
后续功能开发请参考 `docs/` 目录下的详细文档。
## 许可证
[待定]