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+

  2. 配置 JAVA_HOME 环境变量

    # Windows PowerShell (管理员权限)
    [System.Environment]::SetEnvironmentVariable('JAVA_HOME', 'C:\Program Files\Eclipse Adoptium\jdk-17.x.x-hotspot', 'Machine')
    
  3. 验证 Java 版本

    java -version
    # 应该显示 java version "17.x.x" 或更高
    
    mvn -v
    # 应该显示 Java version: 17.x.x
    

Node.js 版本要求

  • Node.js 18+ 和 npm 9+

快速开始

后端启动

cd backend
mvn clean install
mvn spring-boot:run

后端将在 http://localhost:8080 启动WebSocket 端点为 /ws

前端启动

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/ 目录下的详细文档。

许可证

[待定]

Description
数据分享
Readme Apache-2.0 276 KiB
Languages
TypeScript 33.9%
Vue 31.5%
Java 31.2%
CSS 1.1%
Dockerfile 1.1%
Other 1.2%