程序聚合 软件案例 星唔聊天软件

星唔聊天软件

2026-06-06 16:32:34
行业:社交
载体:网站、安卓APP
技术:Lombok、MyBatis、Vue、Vue Router

业务和功能介绍

软件功能(登录/注册、好友增删、群聊创建/加入、历史消息查
询)、
数据库设计(用户、好友、群组、私聊/群聊消息表)
WebSocket 实时通信、离线消息存储与拉取、
Redis 在线状态管理、管理员广播、前端界面与交互

1. 登录 / 注册
注册功能:用户提交用户名、密码、手机号 / 邮箱等信息,后端校验唯一性后写入user表,密码支持加密存储(如 BCrypt);注册成功后返回用户 ID,完成身份初始化。
登录功能:用户输入账号密码,后端验证通过后生成会话标识(如 JWT),同时将用户在线状态写入 Redis(ws:user:userId),前端存储会话信息并建立 WebSocket 长连接。
状态同步:登录 / 登出时,Redis 中在线状态实时更新,好友列表可感知对方在线 / 离线状态。
2. 好友增删管理
添加好友:用户发起好友申请,后端校验双方用户存在性后,在friend表中添加双向好友记录(userId+friendId),支持备注、分组功能。
删除好友:删除friend表中对应双向记录,同时清理该好友的相关会话缓存(可选);删除后双方好友列表实时刷新,无法再发送私聊消息。
好友列表查询:前端通过 REST API 拉取friend表中当前用户的所有好友记录,结合 Redis 在线状态展示 “在线 / 离线” 标识。
3. 群聊创建 / 加入
创建群组:用户(创建者)提交群名称、群简介等信息,后端在chat_group表插入群组记录,同时在group_user表添加创建者为群成员(标记role=admin)。
加入群组:支持 “邀请加入” 或 “申请加入” 模式:
邀请加入:群管理员通过用户 ID 添加成员,直接写入group_user表;
申请加入:普通用户提交申请,管理员审核通过后写入group_user表。
退出 / 移除群组:用户可主动退出群组(删除group_user记录),群管理员可移除成员,操作后群成员列表实时同步。
4. 历史消息查询
私聊历史:前端调用/chat/history/private接口,后端从chat_message表按userId+friendId查询消息记录,支持分页、按时间筛选。
群聊历史:调用/chat/history/group接口,从group_message表按groupId查询,返回群内所有成员的消息记录,同样支持分页。
离线消息拉取:用户登录时,后端查询数据库中该用户未读的离线消息(私聊 / 群聊),一次性推送给前端,标记为已读。


项目实现

后端:Spring Boot + WebSocket(原生javax.websocket)+
MyBatis + MySQL + Redis
前端:Vue3 + Vite +Axios + Pinia
部署:云服务器+ Nginx 反向代理,公网可访问
4.1 后端实现(SpringBoot+WebSocket+MyBatis+Redis+MySQL)
项目搭建与配置基于 SpringBoot 搭建项目,引入 WebSocket、MyBatis-Plus、Redis、MySQL 依赖;在application.yml配置数据库连接、Redis 连接、服务端口 8080、自定义 WebSocket 端口 8082;创建RedisConfig配置类自定义 Redis 序列化规则,ServerEndpointExporter开启原生 WebSocket 注解支持。
用户模块开发编写 User 实体、Mapper、Controller,实现注册(用户名查重、密码入库)、登录接口;登录成功生成会话,Redis 写入ws:user:userId标记在线,同时前端建立 ws 长连接;退出登录删除 Redis 在线 key、关闭 WebSocket 会话。
好友管理模块friend 表 CRUD 接口,实现添加好友、删除好友、查询好友列表;查询好友时批量调取 Redis 在线状态,前端展示在线 / 离线标识;添加好友双向入库,删除同步清除两边好友数据。
群组模块开发chat_group(群组表)+group_user(成员表)双表关联;实现创建群组(创建人自动设为群主)、申请 / 邀请入群、退出群、移除成员;查询群列表、群成员接口由 axios 前端调用。
WebSocket 通信核心(WsServerEndpoint)
客户端:ws://ip:8082/ws/{userId}建立连接,服务端用 Map 保存 userId 和 Session 映射;
私聊:发送消息→判断接收方 Redis 在线状态,在线实时 ws 推送,离线存入 chat_message 离线字段;
群聊:根据 groupId 查询全部群成员,筛选在线用户批量推送消息,消息持久化 group_message;
定时心跳机制:前端周期性发送 heartbeat,超时未回复自动断开连接、删除 Redis 在线状态。
离线消息处理用户新登录建立 ws 连接后,后端自动查询私聊 chat_message、群聊 group_message 中未读离线消息,批量推送前端,推送完毕修改 is_offline=0 标记已读。
历史消息查询编写分页接口/chat/history/private、群消息接口,按用户 ID、好友 ID / 群组 ID 分页查询数据库历史聊天记录,下拉滚动动态加载。
管理员全局广播通过

示例图片视频


落了樱
1天前活跃
方向: 前端-Web前端、后端-Java、
交付率:100.00%
相似推荐
验证码识别-滑块验证码自动识别服务
为解决自动化脚本在遇到滑块验证码时无法继续执行的问题,开发了一套基于计算机视觉的验证码自动识别系统。 核心功能:1)图像预处理模块,对验证码图片进行灰度化、边缘检测和降噪处理;2)滑块缺口定位模块,使用OpenCV模板匹配算法计算滑块目标位置;3)轨迹生成模块,模拟人类拖动行为生成平滑滑动轨迹曲线;4)REST API服务,通过Flask将识别能力封装为HTTP接口供其他自动化工具调用。 业务流程:客户端上传验证码背景图和滑块图→系统预处理并匹配缺口位置→计算偏移量和滑动轨迹→返回识别结果(偏移像素+置信度)。
气瓶监管平台
气瓶监管平台(LPG Guardian) 基于 Spring Boot + Vue3 的气瓶安全监管系统,覆盖燃气气瓶与工业气瓶的全生命周期管理,支持档案管理、审批流程、充装管理、检验管理、统计分析等功能。两种气瓶类型 系统同时管理燃气气瓶和工业气瓶,两者在大部分业务流程中平行运作。气瓶审批是系统的核心业务流程,覆盖气瓶的全生命周期状态变更。审批申请通过支持燃气气瓶和工业气瓶混合提交。
设备管理系统-一码多识APP
一码多识APP集成了系统的核心功能,使得维护人员和管理者能够在移动环境下实现设备管理的全流程操作,包括但不限于故障上报、任务接收、现场维护记录以及状态更新等。通过利用先进的信息技术,该系统为每件管理设备生成一个唯一的二维码,实现设备的即时识别、跟踪与管理。它支持全流程的设备维护管理,从故障接报、任务派发、现场维护到信息记录,确保维护工作的高效执行。同时,系统集成了链路管理与故障关联分析,提升了故障定位和处理的速度与准确性。
自行开发监控软件-监控软件
1,立项背景:在医院信息部门工作,负责医院系统开发和运维工作,传统的监控软件很难实现全范围监控,如网络,接口,业务系统,服务器cpu、内存、存储,院内核心业务,数据库等,并且出现问题不能及时预警,漏报误报占比太高,就从核心业务开始自己写监控,逐步扩展到数据库,接口,总线平台,数据中心等其他模块,现在院内运维基本依赖这套监控系统,运行很多年,功能也比较完善。 2,核心功能:实现网络,接口,业务系统,服务器cpu、内存、存储,院内核心业务,数据库,通过钉钉,小程序,短信,电话,工单系统等方式,及时把预警消息推送到个人和群,督促系统管理员及时处理。 3,业务流程:任务监控,没隔三分钟跑一次所有监控列表,记录数据到数据库了日志,有问题节点间隔30秒再跑一次监控,自定义每个节点监控次数,达到设定上限开始推送预警消息到个人和运维群,防止误报,个人未处理第二次预警时推送工单,拨打电话。
公安低空数智融合应用平台
主要面向公安局、巡特警反恐支队及各区县分局。适用于日常城市治安巡查、重点区域(公园、商场、交通枢纽)的常态化低空安防巡检、大型活动安保及突发事件的应急指挥调度,助力构建“地空立体化”的智慧警务防控体系。
帮助文档   Copyright @ 2021-2024 程聚宝 | 浙ICP备2021014372号
人工客服