1、立项背景和目标
项目定位为轻量级即时通讯与社交应用,参考微信核心使用场景,实现账号体系、单聊、好友关系与朋友圈,便于在移动端与桌面端完成注册、登录、收发消息、浏览动态。目标是在前后端分离架构下,用一套客户端覆盖 Android、iOS、Windows,并与自研后端(Rust)打通,形成可部署、可演示的完整产品闭环。
2、软件功能与核心功能模块
账号与鉴权:注册、登录、JWT 鉴权;登录态持久化与退出。
通讯录与好友:搜索用户、发送/处理好友申请、好友列表、删除好友。
单聊:会话列表(按最近消息排序)、与指定好友的聊天页、文本消息收发与删除;消息通过 WebSocket 实时推送,HTTP 拉取历史。
朋友圈:发布图文动态、列表流式加载、点赞、评论与删除评论、删除自己的动态。
个人中心:查看/编辑昵称与头像、修改资料。
通用能力:图片选择与上传、多端自动打包(CI 产出安装包)。
3、业务流程与功能路径
使用路径:打开 App → 登录/注册 → 进入主界面(会话/通讯录/发现/我)→ 在「通讯录」搜索并加好友 → 在「会话」选会话或发起单聊 → 在聊天页发消息、收实时推送;在「发现」看朋友圈、发动态、点赞评论;在「我」查看与编辑个人资料。
消息链路:客户端通过 WebSocket 与后端保持长连接,发送消息走 HTTP 写入库并经服务端转发至对端 WebSocket;接收方在连接上收推送并更新会话与聊天页。
数据与安全:敏感接口统一 JWT 校验;Token 与用户信息本地持久化,退出时清除。
1、整体架构与技术栈
项目为类微信的即时通讯应用,前后端分离。后端(Rust):Actix-web + Tokio 异步、JWT 鉴权、MySQL(SQLx)+ Redis,WebSocket 长连接用 DashMap 管理在线会话;REST 提供注册/登录、好友、单聊、朋友圈、图片上传等接口。客户端(Flutter):Dart 3,HTTP 调 REST、WebSocket 收消息;单例封装 ApiService/WsService,Ws 断线自动重连(指数退避、最多 10 次);多端构建(Android/iOS/Windows),CI 用 GitHub Actions 自动打包并产出 APK/ipa/zip。
2、本人负责模块与结果
客户端:登录/注册、会话列表与聊天页、好友与搜索、个人资料与编辑、朋友圈列表与发布/点赞/评论、图片选择与上传、WebSocket 断线重连与状态回调;单仓库内完成 Android/iOS/Windows 三端构建与 CI 配置,推送即出包。
后端:与上述能力对应的接口与 WebSocket 设计实现、鉴权与存储、在线状态管理;保证接口与协议与客户端一一对接、可联调通过。
3、难点与解决
长连接稳定性:弱网或服务重启易断线。在客户端对 WebSocket 做统一封装,断线后自动重连、指数退避、区分用户主动断开与异常断开,避免无效重连与重复连接。
多端构建与路径:GitHub Actions 中 Windows 产物路径随 Flutter 版本变化(如 3.16+ 为 x64/runner/Release),通过判断目录存在性做兼容;iOS 无签名构建产物路径与 zip 上传路径不一致导致 Artifacts 缺失,改为用 GITHUB_WORKSPACE 绝对路径打包并上传,保证每次构建都能产出可下载包。