Multi-User Service Spring Boot Application is a real-time multi-user service platform built with Spring Boot 3.2.4 and Java 21. It provides comprehensive room management, user management, and real-time communication capabilities, with support for DICOM medical imaging processing and LiveKit integration.
- Real-time Communication: Built on Netty framework for high-performance networking
- Room Management: Create, join, leave, and manage game rooms
- User Management: User registration, login, and authentication
- Medical Imaging: DICOM file processing and 3D visualization support
- Object Storage: MinIO integration for file management
- Live Streaming: LiveKit integration for real-time video/audio
- Database Support: MySQL with MyBatis Plus ORM
- Docker Support: Containerized deployment
- Framework: Spring Boot 3.2.4
- Java Version: 21
- Game Framework: iohao.game 21.14
- Network: Netty 4.1.112.Final
- Database: MySQL with MyBatis Plus
- Object Storage: MinIO
- Live Streaming: LiveKit
- Build Tool: Maven
- Containerization: Docker
multi-user-service-sp/
├── src/main/java/org/tova/
│ ├── common/ # Common modules
│ │ ├── cmd/ # Command modules
│ │ ├── pb/ # Protocol buffer classes
│ │ ├── vo/ # Value objects
│ │ └── web/ # Web-related classes
│ ├── config/ # Configuration classes
│ ├── controller/ # REST controllers
│ ├── external/ # External server implementation
│ ├── mapper/ # Database mappers
│ ├── servers/ # Logic servers
│ │ ├── room/ # Room management
│ │ └── user/ # User management
│ ├── services/ # Business services
│ ├── test/ # Test clients and utilities
│ └── utils/ # Utility classes
├── src/main/resources/
│ ├── application.yaml # Application configuration
│ └── sql/mysql.sql # Database schema
├── doc_game.txt # API documentation
├── Dockerfile # Docker configuration
└── pom.xml # Maven configuration
spring:
datasource:
url: jdbc:mysql://localhost:3306/multi_user_db
username: root
password: 123456live-kit:
key: devkey
secret: secret
endpoint: http://localhost:7880dicom:
dcm-path: /home/work-temp/dcm/
obj-path: /home/work-temp/obj/
nii-path: /home/work-temp/nii/
slicer-path: /home/Slicer-5.6.2-linux-amd64/Slicer0-0: User Login0-1: User Registration
1-0: Create Room1-1: Enter Room1-2: Leave Room1-3: Get Room List1-5: Delete Room1-6: Get Request List1-7: Select View Request
3-0: Move Character3-1: Operation3-2: Position Update
- Java 21 or higher
- Maven 3.6+
- MySQL 8.0+
- Docker (optional)
使用Docker Compose可以快速启动完整的服务栈,包括MySQL、LiveKit、MinIO等依赖服务。
- 克隆仓库
git clone https://github.com/Linorman/multi-user-service-sp.git
cd multi-user-service-sp- 启动服务
# 构建并启动所有服务
docker-compose up -d
# 查看服务状态
docker-compose ps
# 查看应用日志
docker-compose logs -f multi-user-service- 服务地址
- 主应用服务: http://localhost:7070
- MySQL数据库: localhost:3306
- LiveKit服务: http://localhost:7880
- MinIO控制台: http://localhost:9001 (用户名: minioadmin, 密码: minioadmin)
- 停止服务
docker-compose down- 构建镜像
docker build -t multi-user-service .- 运行容器
# 确保MySQL和其他依赖服务已运行
docker run -d \
--name multi-user-service \
-p 7070:7070 \
-p 8080:8080 \
-e DB_HOST=your-mysql-host \
-e DB_USERNAME=root \
-e DB_PASSWORD=123456 \
-e LIVEKIT_ENDPOINT=http://your-livekit-host:7880 \
multi-user-service- Clone the repository
git clone https://github.com/Linorman/multi-user-service-sp.git
cd multi-user-service-sp- Configure database
# Create database
mysql -u root -p
CREATE DATABASE multi_user_db;-
Update configuration Edit
src/main/resources/application.yamlwith your database credentials. -
Build and run
mvn clean package
java -jar target/multi-user-service-sp-0.0.1-SNAPSHOT.jarThe application includes test clients for various components:
- User testing:
org.tova.test.user.UserTest - Room testing:
org.tova.test.room.RoomTest - User mapping testing:
org.tova.test.userMapping.UserMappingTest
在使用Docker部署时,可以通过环境变量来配置应用:
DB_HOST: 数据库主机地址 (默认: mysql)DB_PORT: 数据库端口 (默认: 3306)DB_NAME: 数据库名称 (默认: multi_user_db)DB_USERNAME: 数据库用户名 (默认: root)DB_PASSWORD: 数据库密码 (默认: 123456)
LIVEKIT_API_KEY: LiveKit API密钥 (默认: devkey)LIVEKIT_API_SECRET: LiveKit API密码 (默认: secret)LIVEKIT_ENDPOINT: LiveKit服务端点 (默认: http://livekit:7880)
DICOM_DCM_PATH: DICOM文件路径 (默认: /app/dicom/dcm/)DICOM_OBJ_PATH: 对象文件路径 (默认: /app/dicom/obj/)DICOM_NII_PATH: NII文件路径 (默认: /app/dicom/nii/)SLICER_PATH: Slicer程序路径 (默认: /usr/local/slicer/Slicer)
SEG_SERVICE_URL: 分割服务URL (默认: http://seg-service:4000)JAVA_OPTS: JVM参数 (默认: "-Xms512m -Xmx1024m -Dspring.profiles.active=docker")
- 7070: Main application server
- 8080: External server port
- 3306: MySQL database
- 7880: LiveKit server
- 9000: MinIO API
- 9001: MinIO Console
-
首次启动: 首次使用docker-compose启动时,MySQL需要初始化数据库,应用可能需要等待一段时间才能连接成功。
-
数据持久化: 使用了Docker volumes来持久化数据:
mysql_data: MySQL数据minio_data: MinIO文件存储app_logs: 应用日志dicom_data: DICOM文件数据
-
健康检查: 所有服务都配置了健康检查,可以通过以下命令查看状态:
docker-compose ps
-
日志查看: 查看特定服务的日志:
docker-compose logs -f multi-user-service # 应用日志 docker-compose logs -f mysql # 数据库日志 docker-compose logs -f livekit # LiveKit日志
-
配置文件: 可以将自定义配置文件放在
./config目录下,容器会自动挂载。
Multi-User Service Spring Boot Application 是一个基于 Spring Boot 3.2.4 和 Java 21 构建的实时多用户服务平台。它提供全面的房间管理、用户管理和实时通信功能,支持 DICOM 医学影像处理和 LiveKit 集成。
- 实时通信: 基于 Netty 框架的高性能网络通信
- 房间管理: 创建、加入、离开和管理游戏房间
- 用户管理: 用户注册、登录和身份验证
- 医学影像: DICOM 文件处理和 3D 可视化支持
- 对象存储: MinIO 集成的文件管理
- 直播功能: LiveKit 集成的实时音视频
- 数据库支持: MySQL 配合 MyBatis Plus ORM
- Docker 支持: 容器化部署
- 框架: Spring Boot 3.2.4
- Java 版本: 21
- 游戏框架: iohao.game 21.14
- 网络框架: Netty 4.1.112.Final
- 数据库: MySQL + MyBatis Plus
- 对象存储: MinIO
- 直播服务: LiveKit
- 构建工具: Maven
- 容器化: Docker
multi-user-service-sp/
├── src/main/java/org/tova/
│ ├── common/ # 通用模块
│ │ ├── cmd/ # 命令模块
│ │ ├── pb/ # 协议缓冲区类
│ │ ├── vo/ # 值对象
│ │ └── web/ # Web相关类
│ ├── config/ # 配置类
│ ├── controller/ # REST控制器
│ ├── external/ # 外部服务器实现
│ ├── mapper/ # 数据库映射器
│ ├── servers/ # 逻辑服务器
│ │ ├── room/ # 房间管理
│ │ └── user/ # 用户管理
│ ├── services/ # 业务服务
│ ├── test/ # 测试客户端和工具
│ └── utils/ # 工具类
├── src/main/resources/
│ ├── application.yaml # 应用配置
│ └── sql/mysql.sql # 数据库架构
├── doc_game.txt # API文档
├── Dockerfile # Docker配置
└── pom.xml # Maven配置
spring:
datasource:
url: jdbc:mysql://localhost:3306/multi_user_db
username: root
password: 123456live-kit:
key: devkey
secret: secret
endpoint: http://localhost:7880dicom:
dcm-path: /home/work-temp/dcm/
obj-path: /home/work-temp/obj/
nii-path: /home/work-temp/nii/
slicer-path: /home/Slicer-5.6.2-linux-amd64/Slicer0-0: 用户登录0-1: 用户注册
1-0: 创建房间1-1: 进入房间1-2: 离开房间1-3: 获取房间列表1-5: 删除房间1-6: 获取请求列表1-7: 选择查看请求
3-0: 移动角色3-1: 操作3-2: 位置更新
- Java 21 或更高版本
- Maven 3.6+
- MySQL 8.0+
- Docker (可选)
- 克隆仓库
git clone https://github.com/Linorman/multi-user-service-sp.git
cd multi-user-service-sp- 配置数据库
# 创建数据库
mysql -u root -p
CREATE DATABASE multi_user_db;-
更新配置 编辑
src/main/resources/application.yaml文件,配置数据库连接信息。 -
构建并运行
mvn clean package
java -jar target/multi-user-service-sp-0.0.1-SNAPSHOT.jar应用程序包含各个组件的测试客户端:
- 用户测试:
org.tova.test.user.UserTest - 房间测试:
org.tova.test.room.RoomTest - 用户映射测试:
org.tova.test.userMapping.UserMappingTest
- 7070: 主应用服务器端口
- 8080: 外部服务器端口
- 3306: MySQL 数据库端口
- 7880: LiveKit 服务器端口
欢迎提交 Issue 和 Pull Request 来帮助改进项目。
本项目采用 [许可证名称] 许可证。详见 LICENSE 文件。