返回项目列表

福师畅聊 - 全栈开发

基于 Spring Boot、Netty、Redis 开发的即时通讯应用,负责全栈开发工作,包括前端和后端。

2025.08-2025.10

项目背景

福师畅聊是一款面向高校师生的即时通讯应用,旨在为校园用户提供便捷的沟通工具。项目需求包括支持私聊、群聊、离线消息、文件传输、语音视频通话等功能,同时需要保证系统的高并发性能和稳定性。作为全栈开发工程师,我负责从架构设计到功能实现的全流程开发工作。

技术架构

项目采用前后端分离架构,后端基于 Spring Boot 框架,使用 Netty 实现高性能的实时消息推送,Redis 作为缓存和消息队列,MySQL 持久化存储用户数据和聊天记录,MinIO 处理文件存储。前端使用 Vue 3 + TypeScript 构建,通过 WebSocket 与后端保持实时连接,实现消息的即时推送和接收。

核心功能

实时消息推送:基于 Netty 长连接和 WebSocket,支持私聊、群聊的实时消息推送

离线消息处理:用户离线时消息存储到 Redis,上线后自动推送离线消息

文件传输:支持图片、文档等多种文件类型的上传和下载,使用 MinIO 对象存储

语音视频通话:集成 WebRTC 实现点对点的语音视频通话功能

好友管理:支持好友添加、删除、分组管理等功能

群组功能:支持创建群组、邀请成员、群组消息推送等功能

消息已读回执:实时显示消息的已读状态

用户设置:支持个人信息修改、隐私设置、通知设置等功能

技术栈

Spring BootNettyRedisMySQLMinIOWebSocketVue 3TypeScriptViteDockerNginx

工作职责

  • 1

    设计并实现基于 Netty 的实时消息推送系统,支持私聊、群聊、离线消息等核心功能

  • 2

    开发 RESTful API 接口,实现用户认证、消息管理、好友关系等后端功能

  • 3

    构建 Vue 3 + TypeScript 前端应用,实现消息列表、聊天界面、用户设置等功能

  • 4

    集成 WebSocket 实现前后端实时通信,确保消息即时送达

  • 5

    设计 Redis 缓存策略,优化消息查询性能和系统响应速度

  • 6

    使用 Docker 容器化部署,配合 Nginx 实现负载均衡和 HTTPS 配置

技术难点与解决方案

高并发消息推送性能优化

使用 Netty 的 NIO 模式和线程池优化,结合 Redis 的 Pub/Sub 机制实现消息分发,通过连接池管理减少连接创建开销,最终支持 1000+ 并发连接,消息延迟控制在 100ms 以内

离线消息存储和推送

设计离线消息存储策略,用户离线时消息存储到 Redis Sorted Set,用户上线时通过定时任务批量推送,同时设置消息过期时间避免内存占用过大

前端性能优化

使用 Vue 3 的 Composition API 和响应式系统优化,实现虚拟滚动减少 DOM 操作,使用 Web Worker 处理消息历史记录查询,最终将页面加载时间优化至 0.8 秒

消息可靠性保证

实现消息确认机制,发送方收到接收方的确认后才标记为已送达,对于未确认的消息设置重试机制,确保消息送达率达到 100%

项目成果

实现了支持 1000+ 并发连接的实时消息系统

前端页面加载速度优化至 0.8 秒,用户体验显著提升

系统稳定性达到 99.9%,消息送达率 100%

代码质量优秀,通过了团队代码审查,获得好评