ChatApp ​

← 返回项目

带文字、图片、语音、视频消息和朋友圈的聊天软件。前后端全通,能注册登录、加好友、发消息、发朋友圈。

做了什么 ​

  • 账号:注册、登录、JWT 鉴权,密码 bcrypt 加密存储
  • 好友:搜索用户、发送好友申请、同意 / 拒绝
  • 消息:文字、图片、语音、视频四种消息类型,会话列表实时刷新
  • 动态:朋友圈发布、点赞、评论

技术选型 ​

层用了什么为什么
客户端Flutter + Dart一套代码跑 Android / iOS,省掉写两遍
状态Provider比 Riverpod 好上手,够用
网络Dio + WebSocket普通请求走 Dio,消息走长连接
服务端FastAPI + SQLAlchemy 2.0Python 写得快,异步天然支持 WebSocket
数据库SQLite(本地)/ PostgreSQL(可切)开发用 SQLite 不折腾
鉴权JWT HS256,7 天有效期无状态,省掉服务端 session

踩过的坑 ​

  • WebSocket 断线重连:网络一断,客户端要能自己重连并把没发出去的消息补发,这块试了很久
  • 图片 / 语音上传的大小和格式限制,前后端要各校验一次
  • Flutter 里长列表滚动时的图片缓存,不注意就一路掉帧

还没搞懂 ​

WebSocket 断线重连那部分基本是照抄的。能跑,但为什么这么写、换一种写法会怎样,我说不清楚。这是我下一步要回头补的地方。

现在到哪一步 ​

功能齐了,但没部署,只在本机跑。上线前至少要处理:文件存储(现在存本地)、消息的持久化顺序、以及重连逻辑的可靠性。