# high-performance-socket-server **Repository Path**: wuwei1999/high-performance-socket-server ## Basic Information - **Project Name**: high-performance-socket-server - **Description**: 高性能socket服务端 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-05 - **Last Updated**: 2025-04-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 高性能Socket聊天服务 这是一个基于SpringBoot和Netty开发的高性能Socket服务端,支持多客户端同时连接,提供快速的消息处理能力,并使用Redis缓存消息。 ## 技术栈 - JDK 17 - Spring Boot 3.0.4 - Netty 4.1.89.Final - Spring Data Redis - Jackson ## 功能特性 - 基于Netty的高性能Socket服务器 - 支持多客户端同时连接 - 快速消息处理和转发 - Redis消息缓存 - 点对点和广播消息支持 - 模拟客户端用于测试 ## 系统架构 - `NettyServer`: 基于Netty的Socket服务器 - `ChatMessageService`: 消息持久化服务 - `MockClient`: 模拟客户端,用于测试 - REST API: 用于查询聊天记录 ## 快速开始 ### 前提条件 - JDK 17+ - Redis服务器 ### 构建与运行 ```bash # 克隆项目 git clone https://github.com/yourusername/socketchat.git cd socketchat # 构建项目 ./mvnw clean package # 运行项目 java -jar target/socketchat-0.0.1-SNAPSHOT.jar ``` ### 配置 在`application.yml`文件中修改Redis和Socket服务器配置: ```yaml spring: data: redis: host: localhost # Redis服务器地址 port: 6379 # Redis服务器端口 database: 0 # Redis数据库索引 socket: server: port: 9000 # Socket服务器端口 boss-thread-count: 1 worker-thread-count: 4 ``` ## API ### 获取用户消息列表 ``` GET /api/chat/messages/{userId}?start=0&limit=10 ``` ### 获取指定消息 ``` GET /api/chat/message/{messageId} ``` ## 模拟客户端 应用启动时会自动创建5个模拟客户端,它们会随机发送消息。 ## 消息格式 消息使用JSON格式,基本结构如下: ```json { "id": "消息ID", "senderId": "发送者ID", "receiverId": "接收者ID(可为null表示广播)", "content": "消息内容", "timestamp": "时间戳", "type": "消息类型(CHAT/CONNECT/DISCONNECT/BROADCAST)" } ```