# 36-在线聊天室系统 - 功能说明
# 项目概述
在线聊天室系统是一个集群组聊天、私聊、好友管理于一体的综合性社交聊天Web应用系统。采用前后端分离架构,基于Vue 3和Spring Boot技术栈,为用户提供多样化的在线交流体验。系统支持创建聊天室、群组聊天、私聊、好友添加、系统公告等全流程社交功能,并提供管理员后台进行全面管理和数据统计。
# 项目概览
# ✨ 创新点
# 1. 双模式聊天体系
- 群组聊天:支持创建聊天室,多人在同一聊天室进行群组交流。
- 私聊功能:好友之间可进行一对一私密聊天,消息独立管理。
- 实时消息:消息实时推送,支持文字和图片两种消息类型。
- 在线状态:实时显示用户在线状态和当前所在聊天室。
# 2. 完善的聊天室管理
- 聊天室分类:学习、娱乐、交流、其他四大分类,便于用户选择。
- 房主管理:每个聊天室有房主,可管理聊天室信息。
- 成员管理:记录聊天室成员加入时间、退出记录。
- 推荐机制:支持聊天室推荐功能,展示优质聊天室。
- 人数限制:可设置聊天室最大人数,控制聊天室规模。
# 3. 智能化好友系统
- 好友申请:用户之间发送好友申请,接收方可通过或拒绝。
- 好友备注:可为好友设置备注名称,方便管理。
- 未读消息:记录好友未读消息数量,及时提醒用户。
- 好友列表:清晰展示所有好友信息,支持快速私聊。
# 4. 系统公告推送
- 公告类型:区分重要公告和普通公告。
- 推送范围:支持全体推送或指定聊天室推送。
- 公告撤回:管理员可撤回已发布的公告。
- 历史记录:用户可查看历史公告信息。
# 5. 数据统计分析
- 消息统计:按日期统计群组消息数、私聊消息数。
- 用户统计:统计总用户数、在线用户数、新增用户数。
- 聊天室统计:统计总聊天室数、活跃聊天室数、新增聊天室数。
- 可视化展示:管理后台提供数据统计报表,直观了解系统运营情况。
# ✨ 项目亮点
# 一、业务功能亮点
- 双通道聊天模式:群组聊天和私聊两种模式互不干扰,满足不同交流需求。
- 完整的聊天室生命周期:从创建、加入、聊天、成员管理到退出,流程完整。
- 好友社交闭环:好友申请→通过/拒绝→私聊→消息管理,形成完整社交链。
- 多消息类型支持:支持文字消息、图片消息、系统通知多种类型。
- 实时在线状态:用户在线/离线状态实时更新,所在聊天室实时展示。
- 灵活的聊天室分类:学习、娱乐、交流、其他四大分类,适配多种场景。
# 二、技术实现亮点
- 现代化前端技术栈:Vue 3 + Element Plus + Vite,开发高效体验流畅。
- 稳定可靠的后端架构:Spring Boot + MyBatis,构建稳健后端服务。
- 完善的数据库设计:12张核心表,utf8mb4字符集,支持完整业务流程。
- 冗余字段优化:合理使用冗余字段(昵称、头像),减少关联查询,提升性能。
- 索引优化:多表建立联合索引,优化查询性能。
- 逻辑关联:采用逻辑关联而非外键约束,提升灵活性。
# 三、用户体验亮点
- 双端界面设计:
- 前台:聊天室列表、好友列表、聊天界面,简洁直观。
- 管理后台:侧边导航,功能集中,数据统计一目了然。
- 交互优化:
- 实时消息提示。
- 未读消息数量显示。
- 在线状态实时更新。
- 好友申请消息提醒。
- 聊天体验:
- 消息时间戳显示。
- 发送者昵称和头像展示。
- 支持图片发送和预览。
- 消息历史记录完整保留。
# 管理员
# 系统管理
管理员管理:管理全部管理员账号,支持新增、编辑、删除、启用/禁用操作。
普通用户管理:管理全部用户账号,可修改用户信息、状态,支持重置密码。
用户在线状态管理:查看用户在线状态、所在聊天室、登录时间、最后活跃时间。
# 聊天室管理
聊天室管理:管理全部聊天室,包括聊天室名称、描述、类型、分类、人数限制、当前人数、房主信息、推荐设置。
聊天室分类管理:管理聊天室分类(学习、娱乐、交流、其他),设置分类名称、描述、图标、排序。
聊天室成员管理:查看所有聊天室的成员列表,包括加入时间、成员状态(正常/已退出)。
群组消息管理:查看所有聊天室的聊天消息记录,包括消息类型(文字/系统通知/图片)、发送时间、发送者信息。
# 私聊管理
私聊消息管理:查看所有用户的私聊消息记录,包括发送者、接收者、消息内容、已读状态、发送时间。
好友关系管理:查看所有用户的好友关系,包括好友备注、未读消息数、添加时间。
好友申请管理:查看所有好友申请记录,包括申请人、接收人、申请留言、申请状态(待处理/已通过/已拒绝)、处理时间。
# 系统管理
系统公告管理:发布系统公告,设置公告标题、内容、类型(重要/普通)、推送范围(全部/指定聊天室)、撤回公告。
消息统计:按日期统计系统数据,包括群组消息数、私聊消息数、总用户数、在线用户数、总聊天室数、活跃聊天室数、新增用户数、新增聊天室数。
# 普通用户
# 聊天室功能
首页浏览:浏览首页展示的推荐聊天室、在线用户数、系统公告等信息。
聊天室列表:
- 浏览所有公开聊天室
- 按分类筛选聊天室(学习/娱乐/交流/其他)
- 查看聊天室名称、描述、当前人数、最大人数、房主信息
- 查看推荐聊天室标识
创建聊天室:
- 填写聊天室名称、描述
- 选择聊天室类型(公开/私密)
- 选择分类(学习/娱乐/交流/其他)
- 设置最大人数限制
- 创建成功后自动成为房主
加入聊天室:
- 浏览聊天室列表,选择感兴趣的聊天室
- 点击加入聊天室
- 自动成为聊天室成员
群组聊天:
- 进入聊天室后查看历史消息
- 发送文字消息
- 发送图片消息
- 查看在线成员列表
- 实时接收其他成员消息
- 查看消息发送时间和发送者信息
退出聊天室:退出当前聊天室,成员状态变为已退出。
# 好友功能
好友列表:
- 查看所有好友
- 显示好友昵称、头像、备注
- 显示未读消息数量
- 快速进入私聊
添加好友:
- 搜索用户
- 发送好友申请
- 填写申请留言
- 等待对方通过
好友申请管理:
- 查看收到的好友申请
- 查看申请人昵称、头像、申请留言
- 通过或拒绝好友申请
设置好友备注:为好友设置备注名称,方便识别。
删除好友:删除不需要的好友关系。
# 私聊功能
私聊界面:
- 点击好友进入私聊界面
- 查看历史聊天记录
- 发送文字消息
- 发送图片消息
- 实时接收对方消息
- 查看消息已读/未读状态
未读消息提醒:好友列表显示未读消息数量,及时提醒用户查看。
消息已读:进入私聊界面后,未读消息自动标记为已读,并记录读取时间。
# 个人中心
个人信息:修改个人信息(用户名、昵称、头像、手机号、邮箱)。
修改密码:修改登录密码。
系统公告:查看系统发布的公告通知。
# 功能权限对照表
| 功能模块 | 管理员 | 普通用户 |
|---|---|---|
| 首页 | ✓ | ✓ |
| 管理员管理 | ✓ | - |
| 用户管理 | ✓ | - |
| 用户在线状态管理 | ✓ | - |
| 聊天室管理(全部) | ✓ | - |
| 聊天室分类管理 | ✓ | - |
| 聊天室成员管理 | ✓ | - |
| 群组消息管理(全部) | ✓ | - |
| 浏览聊天室 | - | ✓ |
| 创建聊天室 | - | ✓ |
| 加入聊天室 | - | ✓ |
| 群组聊天 | - | ✓ |
| 退出聊天室 | - | ✓ |
| 私聊消息管理(全部) | ✓ | - |
| 私聊消息管理(个人) | - | ✓ |
| 好友关系管理(全部) | ✓ | - |
| 好友关系管理(个人) | - | ✓ |
| 好友申请管理(全部) | ✓ | - |
| 好友申请管理(个人) | - | ✓ |
| 添加好友 | - | ✓ |
| 系统公告管理 | ✓ | - |
| 系统公告浏览 | - | ✓ |
| 消息统计 | ✓ | - |
# 默认账号
# 管理员
用户名: admin
密码: 123456
昵称: 系统管理员
手机: 13800138000
邮箱: admin@qq.com
2
3
4
5
# 测试用户
用户1:
用户名: zhangsan
密码: 123456
昵称: 张三
手机: 13800138001
用户2:
用户名: lisi
密码: 123456
昵称: 李四
手机: 13800138002
用户3:
用户名: wangwu
密码: 123456
昵称: 王五
手机: 13800138003
用户4:
用户名: zhaoliu
密码: 123456
昵称: 赵六
手机: 13800138004
用户5:
用户名: sunqi
密码: 123456
昵称: 孙七
手机: 13800138005
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 核心业务流程
# 用户注册流程
1. 填写注册信息(用户名、密码、昵称、邮箱)
2. 系统创建用户账号(状态:启用)
3. 跳转到登录页
2
3
# 创建聊天室流程
1. 进入"聊天室列表"页面
2. 点击"创建聊天室"按钮
3. 填写聊天室名称、描述
4. 选择聊天室类型(公开/私密)
5. 选择分类(学习/娱乐/交流/其他)
6. 设置最大人数限制
7. 提交创建,自动成为房主和第一个成员
8. 聊天室状态:正常,当前人数:1
2
3
4
5
6
7
8
# 加入聊天室聊天流程
1. 浏览聊天室列表,查看聊天室信息
2. 选择感兴趣的聊天室,点击"加入"
3. 系统检查人数限制,未满则加入成功
4. 成为聊天室成员,当前人数+1
5. 进入聊天室,查看历史消息
6. 发送文字或图片消息
7. 实时接收其他成员的消息
8. 查看在线成员列表
9. 退出聊天室,成员状态变为已退出
2
3
4
5
6
7
8
9
# 添加好友流程
1. 搜索想要添加的用户
2. 点击"添加好友"按钮
3. 填写申请留言(可选)
4. 提交好友申请,状态:待处理
5. 对方收到好友申请通知
6. 对方查看申请信息,选择通过或拒绝
7. 通过后:
- 双方自动建立好友关系(双向添加)
- 好友申请状态变为:已通过
- 记录处理时间
- 双方可在好友列表中看到对方
8. 拒绝后:
- 好友申请状态变为:已拒绝
- 记录处理时间
2
3
4
5
6
7
8
9
10
11
12
13
14
# 私聊流程
1. 进入"好友列表"页面
2. 选择想要聊天的好友,点击进入私聊
3. 查看历史聊天记录
4. 发送文字或图片消息
5. 消息实时推送给对方
6. 对方未读消息数+1
7. 对方进入私聊界面后:
- 未读消息自动标记为已读
- 记录读取时间
- 未读消息数清零
8. 继续发送消息,实时聊天
2
3
4
5
6
7
8
9
10
11
# 系统公告发布流程
1. 管理员进入"系统公告管理"页面
2. 点击"发布公告"按钮
3. 填写公告标题、内容
4. 选择公告类型(重要/普通)
5. 选择推送范围(全部/指定聊天室)
6. 提交发布,状态:发布
7. 用户在系统公告页面查看公告
8. 如需撤回,管理员可将公告状态改为:已撤回
2
3
4
5
6
7
8
# 技术说明
# 系统架构
- 前端:Vue 3 + Element Plus + Vite
- 后端:Spring Boot + MyBatis
- 数据库:MySQL 5.7+
- 认证:JWT Token
# 访问地址
- 后端API:http://localhost:1000
- 前端页面:http://localhost:5173(开发环境)
# 数据库
- 数据库名:chat_system
- 字符集:utf8mb4
- 总表数:12张表
# 核心表说明
- admin:管理员表(存储管理员账号信息)
- user:普通用户表(存储用户账号信息)
- user_online:用户在线状态表(记录用户在线状态、所在聊天室)
- chat_room:聊天室表(存储聊天室基本信息)
- chat_room_category:聊天室分类表(学习、娱乐、交流、其他)
- room_member:聊天室成员表(记录用户加入聊天室的关系)
- chat_message:群组聊天消息表(存储聊天室的所有消息)
- private_message:私聊消息表(存储用户之间的私聊消息)
- friend:好友关系表(记录用户之间的好友关系,双向)
- friend_request:好友申请表(记录好友申请的状态)
- system_notice:系统公告表(存储管理员发布的公告)
- message_statistics:消息统计表(按日期统计系统数据)
# 系统特色
# 聊天室特色
- 灵活的分类系统:学习、娱乐、交流、其他四大分类,满足多种场景需求
- 房主管理机制:创建者自动成为房主,拥有管理权限
- 人数限制控制:可设置聊天室最大人数,避免聊天室过度拥挤
- 推荐展示:管理员可设置推荐聊天室,引导用户加入优质聊天室
- 成员轨迹记录:记录成员加入时间和退出记录,便于管理
# 消息特色
- 多类型消息:支持文字、图片、系统通知三种消息类型
- 实时推送:消息实时推送,无需刷新页面
- 历史记录:完整保留聊天历史,可随时查看
- 冗余优化:消息表冗余存储发送者昵称、头像,减少关联查询
- 已读未读:私聊消息支持已读未读标识,明确消息状态
# 好友特色
- 双向好友关系:添加好友后自动建立双向关系
- 好友备注:可为好友设置备注名称,方便管理
- 申请审核:好友申请需对方通过,保护用户隐私
- 未读消息提醒:好友列表显示未读消息数,及时提醒
- 申请留言:发送好友申请时可填写留言,增加通过率
# 在线状态特色
- 实时更新:用户在线状态实时更新
- 所在聊天室显示:可查看用户当前所在的聊天室
- 登录时间记录:记录用户登录时间
- 最后活跃时间:记录用户最后活跃时间,判断活跃度
# 系统公告特色
- 公告分级:区分重要公告和普通公告,方便用户识别
- 精准推送:支持全体推送或指定聊天室推送
- 公告撤回:管理员可撤回已发布的公告
- 历史查询:用户可查看历史公告信息
# 数据统计特色
- 按日统计:按日期统计系统数据,了解每日运营情况
- 多维度统计:统计消息数、用户数、聊天室数等多个维度
- 增量统计:统计新增用户数、新增聊天室数,了解增长趋势
- 活跃度统计:统计在线用户数、活跃聊天室数,了解系统活跃度
# 项目优势
# 1. 解决社交需求
- 在线交流:提供方便的在线聊天平台,满足用户交流需求
- 群组讨论:支持创建不同主题的聊天室,方便同好交流
- 私密聊天:好友之间可进行私密聊天,保护隐私
- 实时互动:消息实时推送,提升交流效率
# 2. 功能完善全面
- 聊天功能:支持群组聊天和私聊两种模式
- 好友系统:完善的好友申请、管理机制
- 分类管理:聊天室分类管理,便于用户查找
- 系统公告:管理员可发布公告,及时通知用户
# 3. 技术实现规范
- 前后端分离:开发效率高,维护方便
- 数据库设计规范:12张表,关系清晰,数据完整
- 冗余字段优化:合理使用冗余字段,提升查询性能
- 索引优化:多表建立索引,优化查询速度
# 4. 用户体验优秀
- 操作简单:界面清晰,流程顺畅
- 实时反馈:消息实时推送,状态实时更新
- 消息提醒:未读消息数量显示,及时提醒用户
- 历史记录:完整保留聊天历史,方便回溯