在广东外语外贸大学南国商学院做的基于socket的聊天室项目,使用NIO模型,界面使用JavaFX
|
|
1 개월 전 | |
|---|---|---|
| chat-gwng | 2 달 전 | |
| .gitignore | 2 달 전 | |
| README.md | 1 개월 전 |
一个基于Java NIO和JavaFX的现代化网络聊天室应用,支持实时消息传递和用户管理。
Chat-GWNG 是广东外语外贸大学南国商学院的网络聊天室项目,采用Java NIO非阻塞IO模型实现高性能的网络通信,使用JavaFX构建用户界面。
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父项目配置
构建项目
mvn clean compile
启动服务器
# 方式一:命令行模式
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"
启动客户端
# 方式一:命令行模式
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"
项目定义了完整的消息类型系统:
// 消息类型
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 // 消息撤回
调试服务器:
mvn exec:java -pl chat-server -Dexec.mainClass="space.anyi.chatServer.Server"
调试客户端:
mvn exec:java -pl chat-client -Dexec.mainClass="space.anyi.chatClient.Client"
# 打包所有模块
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 许可证。