介绍

整体架构

客户端客户端客户端HTTP / WebSocket管理 API客服 APIFlutter AppiOS/Android/桌面Go 后端Gin + WebSocketMySQLMongoDBRedisadmin 运营后台admin-kf 客服后台
模块 技术 作用
client/
Flutter + Riverpod
用户用的聊天 App(手机 + 桌面)
backend/
Go + Gin
接口、实时消息、钱包、推送
admin/
Vue3 + Element Plus
运营管理后台
admin-kf/
Vue3(精简版)
客服专用后台

客户端(client/)

Flutter 跨平台 App,版本 5.0.0,支持 iOS、Android、macOS、Windows。

主要功能模块(client/lib/features/):

  • auth — 登录、注册
  • chat — 聊天核心(会话列表、发消息、表情、群聊)
  • contacts — 联系人
  • moments — 朋友圈动态
  • wallet — 钱包(充值、提现、转账、红包)
  • call — 音视频通话(声网 Agora)
  • meeting — 会议
  • settings — 设置、隐私、设备管理
  • home — 底部 Tab 导航

技术要点:

  • Riverpod 管状态,GoRouter 管路由
  • Isar 本地数据库,离线也能看历史消息
  • WebSocket 实时收消息,断了会自动重连
  • Dio 调后端 API
  • 支持 端到端加密(E2EE)、推送通知、后台保活

你最近打开的文件(emoji_picker.dart、chat_page.dart)就是聊天和表情相关功能。


后端(backend/)

Go 写的服务端,模块名 gaoranim。

三层存储:

  • MySQL — 用户、群聊、钱包等结构化数据
  • MongoDB — 消息(按月分表,量大)
  • Redis — 缓存、在线状态、消息队列、限流

核心目录:

backend/
├── cmd/server/main.go # 启动入口,注册所有路由
├── internal/
│ ├── handlers/ # API 接口(auth、message、wallet…)
│ ├── services/ # 业务逻辑(消息、推送、钱包定时任务)
│ ├── models/ # 数据表模型
│ ├── ws/ # WebSocket 实时推送
│ ├── mq/ # Redis 消息队列
│ └── middleware/ # 鉴权、限流、日志
└── config.yaml # 数据库、JWT、声网等配置

主要 API 分组(/api/v1/):

  • /auth — 登录注册、扫码登录
  • /user — 用户资料、隐私、设备、推送
  • /chat — 会话、群管理
  • /message — 发消息、撤回、已读
  • /wallet — 充值提现转账红包
  • /call / /meeting — 通话和会议
  • /admin — 管理后台专用接口

管理后台(admin/)

Vue3 + Vite + TypeScript,给运营人员用。

典型页面(admin/src/views/):

  • dashboard — 数据看板
  • system — 用户、会话、举报、系统设置
  • message — 消息管理
  • moment — 动态审核
  • wallet — 充值提现、红包转账
  • call — 通话记录

你正在看的 admin/src/store/modules/user.ts 是管理员的登录状态和权限管理。


客服后台(admin-kf/)

更轻量的 Vue3 项目,专门给客服人员处理用户咨询,依赖比 admin 少很多。


数据怎么流转(以发消息为例)

  1. 用户在 App 输入消息 → chat_page.dart
  2. 先写入本地 Isar → 界面立刻显示
  3. 通过 HTTP 发给后端 → message_handler.go
  4. 后端写入 MongoDB,通过 WebSocket 推给在线用户
  5. 离线用户走 APNs / FCM 推送
  6. 对方 App 收到 WebSocket 消息 → 更新界面

项目里还有这些

路径 内容
docs/
功能清单、接口说明、部署文档
scripts/
辅助脚本
PROJECT_STRUCTURE.md
完整目录说明(很详细)
安装依赖教程.txt
环境搭建步骤

总结

这是一个功能很全的 IM 产品源码,不只是聊天,还包含:

  • 群聊 / 频道 / 端到端加密
  • 朋友圈
  • 钱包支付(微信/支付宝)
  • 音视频通话 + 会议
  • 双管理后台(运营 + 客服)
  • 多端支持(手机 + 桌面)

如果你想深入某一块(比如聊天怎么发消息、钱包怎么扣款、后台怎么登录),直接说模块名,我可以带你读具体代码

界面预览
手机界面
电脑端预览