Skip to content

jinshihui88/springboot-websocket

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Spring Boot WebSocket 聊天室

项目简介

这是一个基于Spring Boot和WebSocket的实时聊天室项目,支持多用户实时通信、智能机器人回复和服务端主动消息推送。

功能特性

🔥 基础功能

  • ✅ 实时聊天通信
  • ✅ 多用户支持
  • ✅ 用户进入/离开提醒
  • ✅ 私聊功能
  • ✅ 现代化响应式UI

🤖 服务端主动回复功能(新增)

  • 智能助手自动回复 - 根据关键词自动回复用户消息
  • 定时系统广播 - 每30分钟自动发送系统提醒
  • 欢迎消息 - 用户加入时自动发送欢迎信息
  • 管理员消息推送 - 通过REST API手动发送系统消息
  • 多种消息类型 - 支持聊天、机器人、系统、管理员消息

智能回复功能

支持的关键词

  • 问候语: 你好hello - 随机回复问候语
  • 时间查询: 时间几点 - 返回当前时间
  • 帮助信息: 帮助help - 显示可用命令
  • 天气查询: 天气 - 友好的回复
  • 礼貌用语: 谢谢再见好的 - 相应的礼貌回复
  • 系统命令: /status/time - 系统状态和时间

自动回复特点

  • 🎯 智能关键词匹配
  • ⏱️ 1-4秒随机延迟,模拟真实对话
  • 🚫 避免循环回复(不回复机器人自己的消息)
  • 🎲 多种回复内容随机选择

定时任务

系统广播

  • 频率: 每30分钟一次
  • 内容: 随机选择友好的系统提醒
  • 类型: 小贴士、欢迎消息、休息提醒等

时间提醒

  • 频率: 每小时整点
  • 内容: 当前时间和问候语

管理功能

管理员后台 (/admin)

  • 📢 发送自定义系统广播
  • ⚡ 快速发送预定义消息
  • 🔍 系统状态监控
  • 💬 快速访问聊天室

REST API接口

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

快速开始

1. 运行项目

mvn spring-boot:run

2. 访问应用

3. 测试智能回复

在聊天室中输入以下消息测试智能回复:

  • 你好 - 测试问候功能
  • 帮助 - 查看可用命令
  • 时间 - 获取当前时间
  • 谢谢 - 测试礼貌回复

4. 测试管理功能

访问管理后台发送系统消息:

  • 自定义消息广播
  • 预定义消息(欢迎、维护、提醒等)

项目结构

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+

更新日志

v1.0.0 (当前版本)

  • ✅ 实现服务端主动回复消息功能
  • ✅ 添加智能助手自动回复
  • ✅ 添加定时系统广播
  • ✅ 创建管理员后台界面
  • ✅ 支持多种消息类型显示
  • ✅ 优化用户体验和界面设计

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published