# DevSphere **Repository Path**: yangs-java/dev-sphere ## Basic Information - **Project Name**: DevSphere - **Description**: devSphere-chat 是一个基于 Spring Boot 构建的高性能实时聊天系统,支持私聊、群聊、消息持久化、离线消息推送等功能。系统采用 Netty 实现 WebSocket 通信,通过 Redis Stream 保证消息可靠传输,并集成完善的用户认证和权限管理体系。 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 8 - **Created**: 2025-11-22 - **Last Updated**: 2025-11-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # devSphere-chat - 高性能实时聊天服务
[![Spring Boot](https://img.shields.io/badge/Spring%20Boot-3.x-green)](#) [![Netty](https://img.shields.io/badge/Netty-4.1.76.Final-blue)](#) [![MyBatis Plus](https://img.shields.io/badge/MyBatis%20Plus-3.5.7-orange)](#) [![Redis](https://img.shields.io/badge/Redis-Streaming-red)](#)
## 🌟 项目亮点 devSphere-chat 是一个基于 Spring Boot 构建的企业级实时聊天服务,专为高并发、低延迟的即时通讯场景设计。它不仅提供了完整的私聊和群聊功能,还通过创新的技术架构确保了消息的可靠传输和系统的稳定性。 ### 🚀 核心优势 - **高并发支持**:基于 Netty 的异步事件驱动模型,轻松应对万级并发连接 - **消息可靠性**:Redis Stream 消息队列 + 死信队列机制,确保消息零丢失 - **架构先进**:事件驱动 + 异步处理模式,提升系统整体性能 - **扩展性强**:模块化设计,易于定制和二次开发 ## 💬 聊天服务详解 ### 📱 功能特性 #### 基础聊天功能 - **私聊 (P2P)**:用户之间一对一实时消息传递 - **群聊 (Room)**:支持多人同时在线聊天 - **多消息类型**:支持文本、图片、语音、视频、文件等多种消息格式 - **离线消息**:自动存储和推送用户离线期间的消息 - **消息状态**:已读/未读标记、消息撤回等状态管理 #### 社交功能 - **好友管理**:添加、删除、备注好友关系 - **群组管理**:创建、解散群组,成员管理 - **会话列表**:实时展示私聊和群聊会话列表 - **消息通知**:系统通知、好友申请、群聊邀请等提醒 ### 🏗️ 技术架构 ``` ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ WebSocket │ │ HTTP API │ │ 定时任务 │ │ (Netty) │ │ (Spring MVC) │ │ (Scheduler) │ └────────┬────────┘ └────────┬────────┘ └────────┬────────┘ │ │ │ └──────────────────────┼──────────────────────┘ │ ┌─────────▼─────────┐ │ 业务逻辑层 │ │ (Service Layer) │ └─────────┬─────────┘ │ ┌────────────────────┼────────────────────┐ │ │ │ ┌─────────▼─────────┐ ┌────────▼────────┐ ┌─────────▼─────────┐ │ MySQL数据库 │ │ Redis缓存 │ │ Feign远程调用 │ │ (持久化存储) │ │ (消息队列) │ │ (用户服务) │ └───────────────────┘ └─────────────────┘ └───────────────────┘ ``` ### 🔧 核心组件解析 #### 消息处理引擎 系统采用事件驱动架构处理各类消息: - `GroupMessageListener`:群聊消息监听器,处理群组内消息广播 - `MessageStreamListener`:Redis Stream 消息监听器,消费消息队列中的数据 - `PrivateMessageEvent`:私聊消息事件模型 - `GroupMessageEvent`:群聊消息事件模型 #### 消息传输保障 为了确保消息的可靠传输,系统实现了完整的消息生命周期管理: 1. **消息入队**:通过 Redis Stream 将消息放入队列 2. **异步处理**:监听器异步消费队列消息并持久化到数据库 3. **异常处理**:异常消息自动进入死信队列等待人工处理 4. **状态同步**:实时更新消息状态和用户会话信息 #### WebSocket 通信层 基于 Netty 构建的高性能 WebSocket 服务器: - `NettyServer`:WebSocket 服务器启动配置 - `WebSocketServerHandler`:WebSocket 连接处理器 - `AuthHandler`:连接认证处理器 ### 📦 数据模型设计 系统采用清晰的数据模型来管理聊天相关信息: - `Message`:消息实体,存储所有聊天内容 - `Room`:房间实体,表示聊天会话 - `RoomFriend`:私聊房间关联 - `RoomGroup`:群聊房间详情 - `UserRoomRelate`:用户与房间的关系 ### 🔄 消息流转流程 ```mermaid sequenceDiagram participant C as 客户端 participant W as WebSocket服务 participant R as Redis Stream participant L as 消息监听器 participant DB as 数据库 C->>W: 发送消息 W->>R: 消息入队 R->>L: 异步消费 L->>DB: 持久化存储 DB-->>L: 返回结果 L->>W: 推送确认 W->>C: ACK确认 L->>W: 广播消息 W->>C: 推送消息 ``` ## 🛠️ 部署要求 - Java 17+ - MySQL 8.0+ - Redis 6.0+ - Maven 3.6+ - Nacos Server 2.x ## 🚀 快速开始 1. 克隆项目代码 2. 配置数据库和 Redis 连接信息 3. 启动 Nacos 服务注册中心 4. 运行应用启动类 5. WebSocket 服务默认监听 9000 端口 ## 📄 许可证 Apache License Version 2.0