Przeglądaj źródła

doc:使用trae生成readme文档

yang yi 1 miesiąc temu
rodzic
commit
b1c3eda999
1 zmienionych plików z 184 dodań i 0 usunięć
  1. 184 0
      README.md

+ 184 - 0
README.md

@@ -0,0 +1,184 @@
+# Chat-GWNG 网络聊天室
+
+一个基于Java NIO和JavaFX的现代化网络聊天室应用,支持实时消息传递和用户管理。
+
+## 项目简介
+
+Chat-GWNG 是广东外语外贸大学南国商学院的网络聊天室项目,采用Java NIO非阻塞IO模型实现高性能的网络通信,使用JavaFX构建用户界面。
+
+## 功能特性
+
+- ✅ 实时消息传递(TCP协议)
+- ✅ 用户登录/登出管理
+- ✅ 群组聊天功能
+- ✅ 私聊消息支持
+- ✅ 在线用户列表显示(UDP协议)
+- ✅ 系统消息广播
+- ✅ 消息撤回功能
+- ✅ 图形化用户界面
+
+## 技术栈
+
+### 后端技术
+- **Java 17** - 主要编程语言
+- **Java NIO** - 非阻塞IO网络通信
+- **Maven** - 项目构建和依赖管理
+- **Lombok** - 简化Java代码
+
+### 前端技术
+- **JavaFX 21** - 现代化桌面UI框架
+- **FXML** - JavaFX界面描述语言
+
+### 网络协议
+- **TCP** - 主要消息传输协议
+- **UDP** - 在线用户列表推送
+
+## 项目结构
+
+```
+chat-gwng/
+├── chat-server/                 # 服务器端模块
+│   ├── src/main/java/
+│   │   └── space/anyi/chatServer/
+│   │       ├── Main.java                    # 主启动类
+│   │       ├── Server.java                  # 服务器启动类
+│   │       ├── core/
+│   │       │   ├── ChatServer.java          # 聊天服务器核心类
+│   │       │   ├── ReadHandler.java         # 读事件处理器
+│   │       │   └── WriteHandler.java        # 写事件处理器
+│   │       └── ui/                          # 用户界面相关
+│   └── src/main/resources/fxml/             # FXML界面文件
+├── chat-client/                 # 客户端模块
+│   ├── src/main/java/
+│   │   └── space/anyi/chatClient/
+│   │       ├── Client.java                  # 客户端启动类
+│   │       ├── core/
+│   │       │   ├── Client.java              # 客户端核心类
+│   │       │   ├── ReadHandler.java         # 读事件处理器
+│   │       │   └── WriterHandler.java       # 写事件处理器
+│   │       └── ui/                          # 用户界面相关
+│   └── src/main/resources/fxml/             # FXML界面文件
+├── chat-commom/                 # 公共模块
+│   └── src/main/java/
+│       └── space/anyi/chatCommom/
+│           ├── Message.java                 # 消息实体类
+│           └── Encoder.java                 # 消息编码器
+└── pom.xml                      # Maven父项目配置
+```
+
+## 快速开始
+
+### 环境要求
+
+- **JDK 17+** - Java开发环境
+- **Maven 3.6+** - 项目构建工具
+- **JavaFX 21** - 图形界面框架
+
+### 安装步骤
+
+1. **构建项目**
+```bash
+mvn clean compile
+```
+
+2. **启动服务器**
+```bash
+# 方式一:命令行模式
+mvn exec:java -pl chat-server -Dexec.mainClass="space.anyi.chatServer.Server"
+
+# 方式二:JavaFX界面模式
+mvn exec:java -pl chat-server -Dexec.mainClass="space.anyi.chatServer.ui.ServerApplication"
+```
+
+3. **启动客户端**
+```bash
+# 方式一:命令行模式
+mvn exec:java -pl chat-client -Dexec.mainClass="space.anyi.chatClient.Client"
+
+# 方式二:JavaFX界面模式
+mvn exec:java -pl chat-client -Dexec.mainClass="space.anyi.chatClient.ui.ClientApplication"
+```
+
+### 默认配置
+
+- **服务器端口**: 8000
+- **服务器地址**: localhost
+- **UDP推送端口**: 8080
+
+## 核心功能说明
+
+### 消息类型系统
+
+项目定义了完整的消息类型系统:
+
+```java
+// 消息类型
+Message.MessageType.SYSTEM    // 系统消息
+Message.MessageType.USER      // 用户消息
+
+// 操作类型
+Message.OperateType.CHAT      // 聊天
+Message.OperateType.LOGIN     // 登录
+Message.OperateType.LOGOUT    // 登出
+Message.OperateType.BROADCAST // 广播
+Message.OperateType.UDP       // UDP地址推送
+Message.OperateType.REVOKE    // 消息撤回
+```
+
+### 网络通信架构
+
+1. **TCP连接**:用于主要的消息传输
+2. **UDP推送**:用于实时更新在线用户列表
+3. **Selector机制**:非阻塞IO事件处理
+4. **Channel管理**:连接通道的生命周期管理
+
+## 开发指南
+
+### 代码规范
+
+- 使用Lombok简化Getter/Setter代码
+- 遵循Java命名规范
+- 使用Maven标准目录结构
+- 添加完整的JavaDoc注释
+
+### 运行调试
+
+1. **调试服务器**:
+```bash
+mvn exec:java -pl chat-server -Dexec.mainClass="space.anyi.chatServer.Server"
+```
+
+2. **调试客户端**:
+```bash
+mvn exec:java -pl chat-client -Dexec.mainClass="space.anyi.chatClient.Client"
+```
+
+### 打包部署
+
+```bash
+# 打包所有模块
+mvn clean package
+
+# 运行打包后的JAR
+java -jar chat-server/target/chat-server-1.0-SNAPSHOT.jar
+java -jar chat-client/target/chat-client-1.0-SNAPSHOT.jar
+```
+
+## 许可证
+
+本项目采用 MIT 许可证。
+
+## 联系方式
+
+- **开发者**: 杨逸
+- **学校**: 广东外语外贸大学南国商学院
+- **项目时间**: 2025年
+
+## 更新日志
+
+### v1.0-SNAPSHOT (2025-09)
+- 初始版本发布
+- 基于Java NIO的网络通信
+- JavaFX图形界面
+- 完整的聊天功能
+- 用户管理功能