118 lines
3.1 KiB
Markdown
118 lines
3.1 KiB
Markdown
# DataTool - 房间数据传输助手 (quick-share)
|
||
|
||
基于 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/` 目录下的详细文档。
|
||
|
||
## 许可证
|
||
|
||
[待定]
|