Skip to content

BountyHunter-ControlServer - Tech Stack

BountyHunter-ControlServer là một Java application đóng vai trò là IoT Bridge (Cầu nối IoT) giữa các máy gắp gấu vật lý và hệ thống Backend. Nó chịu trách nhiệm quản lý kết nối TCP socket, dịch giao thức máy, và đồng bộ trạng thái qua Redis/JMS.

1. Ngôn ngữ & Build Tool

  • Ngôn ngữ: Java 17+ (sử dụng các tính năng mới như var, Pattern Matching).
  • Build Tool: Gradle.
  • Dependency Management: Centralized via build.gradle.

2. Frameworks & Libraries

  • Core Framework: Spring Context (v6.1.13) - Sử dụng để quản lý Bean, Dependency Injection và tích hợp JMS.
  • Networking:
  • Java ServerSocket: Sử dụng TCP socket truyền thống để nhận kết nối từ các máy gắp gấu (Port 9999).
  • Java-WebSocket: Hỗ trợ giao thức WebSocket cho các client đặc thù.
  • Messaging (JMS): ActiveMQ Artemis (v6.1.3) - Truyền tải sự kiện gameplay và health-check về Backend.
  • Database/Cache: Redis (Jedis) (v5.1.0) - Lưu trữ trạng thái thời gian thực của các máy gắp.
  • Utilities:
  • Lombok: Giảm mã boilerplate cho DTOs.
  • Jackson: Serialization/Deserialization JSON.
  • Hutool: Các tiện ích mở rộng cho Java.
  • OpenFeign: Gọi các REST API sang Backend (rmc-server/admin).
  • Log4j2: Framework logging.

3. Infrastructure

  • Docker: Có sẵn Dockerfiledocker-compose.yml để đóng gói và triển khai.
  • Redis: External service để cache trạng thái máy.
  • ActiveMQ Artemis: Message Broker để giao tiếp async với Backend.