Skip to content

Linorman/multi-user-service-sp

Repository files navigation

Multi-User Service Spring Boot Application

中文文档 | English


English Documentation

Overview

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.

Features

  • 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

Technology Stack

  • 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

Project Structure

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

Configuration

Database Configuration

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/multi_user_db
    username: root
    password: 123456

LiveKit Configuration

live-kit:
  key: devkey
  secret: secret
  endpoint: http://localhost:7880

DICOM Processing Configuration

dicom:
  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/Slicer

API Endpoints

User Management

  • 0-0: User Login
  • 0-1: User Registration

Room Management

  • 1-0: Create Room
  • 1-1: Enter Room
  • 1-2: Leave Room
  • 1-3: Get Room List
  • 1-5: Delete Room
  • 1-6: Get Request List
  • 1-7: Select View Request

Operations

  • 3-0: Move Character
  • 3-1: Operation
  • 3-2: Position Update

Prerequisites

  • Java 21 or higher
  • Maven 3.6+
  • MySQL 8.0+
  • Docker (optional)

Installation & Running

Method 1: Docker Compose (推荐)

使用Docker Compose可以快速启动完整的服务栈,包括MySQL、LiveKit、MinIO等依赖服务。

  1. 克隆仓库
git clone https://github.com/Linorman/multi-user-service-sp.git
cd multi-user-service-sp
  1. 启动服务
# 构建并启动所有服务
docker-compose up -d

# 查看服务状态
docker-compose ps

# 查看应用日志
docker-compose logs -f multi-user-service
  1. 服务地址
  1. 停止服务
docker-compose down

Method 2: Docker 单独运行

  1. 构建镜像
docker build -t multi-user-service .
  1. 运行容器
# 确保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

Method 3: Local Development

  1. Clone the repository
git clone https://github.com/Linorman/multi-user-service-sp.git
cd multi-user-service-sp
  1. Configure database
# Create database
mysql -u root -p
CREATE DATABASE multi_user_db;
  1. Update configuration Edit src/main/resources/application.yaml with your database credentials.

  2. Build and run

mvn clean package
java -jar target/multi-user-service-sp-0.0.1-SNAPSHOT.jar

Testing

The 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 Environment Variables

在使用Docker部署时,可以通过环境变量来配置应用:

数据库配置

  • DB_HOST: 数据库主机地址 (默认: mysql)
  • DB_PORT: 数据库端口 (默认: 3306)
  • DB_NAME: 数据库名称 (默认: multi_user_db)
  • DB_USERNAME: 数据库用户名 (默认: root)
  • DB_PASSWORD: 数据库密码 (默认: 123456)

LiveKit配置

  • LIVEKIT_API_KEY: LiveKit API密钥 (默认: devkey)
  • LIVEKIT_API_SECRET: LiveKit API密码 (默认: secret)
  • LIVEKIT_ENDPOINT: LiveKit服务端点 (默认: http://livekit:7880)

DICOM处理配置

  • 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")

Ports

  • 7070: Main application server
  • 8080: External server port
  • 3306: MySQL database
  • 7880: LiveKit server
  • 9000: MinIO API
  • 9001: MinIO Console

Docker注意事项

  1. 首次启动: 首次使用docker-compose启动时,MySQL需要初始化数据库,应用可能需要等待一段时间才能连接成功。

  2. 数据持久化: 使用了Docker volumes来持久化数据:

    • mysql_data: MySQL数据
    • minio_data: MinIO文件存储
    • app_logs: 应用日志
    • dicom_data: DICOM文件数据
  3. 健康检查: 所有服务都配置了健康检查,可以通过以下命令查看状态:

    docker-compose ps
  4. 日志查看: 查看特定服务的日志:

    docker-compose logs -f multi-user-service  # 应用日志
    docker-compose logs -f mysql              # 数据库日志
    docker-compose logs -f livekit            # LiveKit日志
  5. 配置文件: 可以将自定义配置文件放在 ./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: 123456

LiveKit 配置

live-kit:
  key: devkey
  secret: secret
  endpoint: http://localhost:7880

DICOM 处理配置

dicom:
  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/Slicer

API 接口

用户管理

  • 0-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 (可选)

安装与运行

方式一:本地开发

  1. 克隆仓库
git clone https://github.com/Linorman/multi-user-service-sp.git
cd multi-user-service-sp
  1. 配置数据库
# 创建数据库
mysql -u root -p
CREATE DATABASE multi_user_db;
  1. 更新配置 编辑 src/main/resources/application.yaml 文件,配置数据库连接信息。

  2. 构建并运行

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 文件。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •