这是一个基于Spring Boot和WebSocket的实时聊天室项目,支持多用户实时通信、智能机器人回复和服务端主动消息推送。
- ✅ 实时聊天通信
- ✅ 多用户支持
- ✅ 用户进入/离开提醒
- ✅ 私聊功能
- ✅ 现代化响应式UI
- ✅ 智能助手自动回复 - 根据关键词自动回复用户消息
- ✅ 定时系统广播 - 每30分钟自动发送系统提醒
- ✅ 欢迎消息 - 用户加入时自动发送欢迎信息
- ✅ 管理员消息推送 - 通过REST API手动发送系统消息
- ✅ 多种消息类型 - 支持聊天、机器人、系统、管理员消息
- 问候语:
你好、hello- 随机回复问候语 - 时间查询:
时间、几点- 返回当前时间 - 帮助信息:
帮助、help- 显示可用命令 - 天气查询:
天气- 友好的回复 - 礼貌用语:
谢谢、再见、好的- 相应的礼貌回复 - 系统命令:
/status、/time- 系统状态和时间
- 🎯 智能关键词匹配
- ⏱️ 1-4秒随机延迟,模拟真实对话
- 🚫 避免循环回复(不回复机器人自己的消息)
- 🎲 多种回复内容随机选择
- 频率: 每30分钟一次
- 内容: 随机选择友好的系统提醒
- 类型: 小贴士、欢迎消息、休息提醒等
- 频率: 每小时整点
- 内容: 当前时间和问候语
- 📢 发送自定义系统广播
- ⚡ 快速发送预定义消息
- 🔍 系统状态监控
- 💬 快速访问聊天室
POST /api/admin/broadcast
- 发送自定义系统消息
POST /api/admin/broadcast/predefined?type={type}
- 发送预定义消息 (welcome/maintenance/reminder/shutdown)
GET /api/admin/status
- 获取系统状态
- 后端: Spring Boot 2.7.18, WebSocket, STOMP
- 前端: HTML5, CSS3, JavaScript, SockJS
- 消息代理: Spring简单消息代理
- 定时任务: Spring @Scheduled
mvn spring-boot:run在聊天室中输入以下消息测试智能回复:
你好- 测试问候功能帮助- 查看可用命令时间- 获取当前时间谢谢- 测试礼貌回复
访问管理后台发送系统消息:
- 自定义消息广播
- 预定义消息(欢迎、维护、提醒等)
src/main/java/
├── controller/
│ ├── ChatController.java # 聊天消息处理
│ ├── PrivateChatController.java # 私聊功能
│ ├── AdminController.java # 管理员API
│ └── HomeController.java # 页面路由
├── service/
│ ├── BotReplyService.java # 智能回复服务
│ └── ScheduledMessageService.java # 定时消息服务
├── model/
│ └── ChatMessage.java # 消息模型
├── config/
│ └── WebSocketConfig.java # WebSocket配置
└── listener/
└── WebSocketEventListener.java # 连接事件监听
src/main/resources/
├── templates/
│ ├── index.html # 聊天室页面
│ └── admin.html # 管理后台页面
└── application.yml # 应用配置
- 定时广播: 30分钟间隔(可在
ScheduledMessageService中修改) - 时间提醒: 每小时整点
- 回复延迟: 1-4秒随机
- 关键词匹配: 不区分大小写
- 回复内容: 可在
BotReplyService中自定义
在BotReplyService.initializeReplies()方法中添加新的关键词和回复内容。
在ScheduledMessageService的@Scheduled注解中修改时间间隔。
在ChatMessage.MessageType枚举中添加新类型,并在前端相应更新样式。
- 当前版本: 1.0.0
- Spring Boot版本: 2.7.18
- Java版本: 1.8+
- ✅ 实现服务端主动回复消息功能
- ✅ 添加智能助手自动回复
- ✅ 添加定时系统广播
- ✅ 创建管理员后台界面
- ✅ 支持多种消息类型显示
- ✅ 优化用户体验和界面设计