ARCHITECTURE

Go即时通讯源码架构,按真实项目结构组织

后端入口在 `backend/cmd/server/main.go`,业务拆在 handlers、services、models、ws、mq、cache 等目录;客户端按 feature-first 管理。

壹信接口数据流图
SYSTEM LAYERS

系统分层

接入层
REST API
WebSocket
Upload
Payment Callback
业务层
Auth / User
Chat / Message
Moment / Wallet
Call / Meeting
实时层
Hub 管理连接
分片锁 Map
Redis MQ
离线推送
数据层
MySQL
MongoDB
Redis
本地 Isar
Go

服务端

Gin 处理 API,GORM 管理 MySQL,MongoDB 承载消息文档,Redis 负责缓存、队列、在线状态与限流。

WS

实时链路

WebSocket Hub 管理多设备连接、会话订阅、广播、心跳、重连、消息队列和在线状态推送。

App

客户端

Flutter + Riverpod + GoRouter + Dio + Isar,跨移动端、桌面端和 Web,支持本地缓存与断网重发。

RTC

通话服务

Agora Token 生成、CallKit 来电、PiP 悬浮窗、通话记录和多端状态终止。

Ops

运营端

Vue3 + Vite + TypeScript + Element Plus + Pinia + ECharts,构成完整管理后台。

Deploy

部署

提供 Docker、docker-compose、宝塔、Nginx、systemd、SQL 初始化等部署资料。

SOURCE MAP

源码目录对应关系

目录职责官网呈现价值
`lib/`Flutter 客户端核心功能和共享组件多端体验、聊天社交、钱包、通话和本地缓存。
`backend/`Go 后端 API、WebSocket、MQ、缓存和部署性能、并发、私有化、可扩展业务能力。
`admin/`Vue3 管理后台运营、审核、报表、系统配置和支付管理。
`admin-kf/`独立客服工作台获客承接、客服绑定、欢迎语和私域服务。
`assets/`图片、图标、表情、声音、贴纸产品完整度和可运营内容生态。
RUNTIME FLOW

一条消息从客户端到多端同步怎么走

技术架构页需要把“高并发 IM”讲清楚:业务接口负责校验和落库,实时链路负责推送,缓存与队列负责削峰和状态同步。

01 客户端

发送与本地状态

Flutter 先创建本地消息状态,Dio 调用消息接口;断网时进入离线队列,网络恢复后自动重试。

02 API

鉴权与业务校验

Go 后端校验 JWT、设备、会话成员、禁言、黑名单、撤回时限和上传权限,再进入服务层处理。

03 数据层

序号、落库、索引

Redis 生成消息序号与短时状态,MongoDB 存储消息文档,MySQL 保持会话、群组、用户和钱包结构化数据。

04 实时层

WebSocket 广播

Hub 按用户、设备、会话维度推送新消息、已读、输入中、群资料变更和在线状态。

05 异步层

队列与离线推送

Redis MQ 处理推送、同步、延迟任务和失败重试,降低高峰时主链路压力。

06 后台

审查与运营

后台可查看会话、消息、举报、动态、钱包和运行状态,形成线上运营闭环。

TECH STACK

关键技术栈与可扩展点

后端Go / Gin / GORM
  • handlers、services、models 分层清晰
  • JWT、CORS、限流、角色权限和演示账号保护
  • 可扩展短信、支付、推送、对象存储和风控策略
实时WebSocket / Redis MQ
  • 连接管理、会话订阅、心跳、重连、多设备在线
  • 延迟队列、失败重试、死信队列和推送任务
  • 适合后续按在线数和消息峰值做水平扩展
数据MySQL / MongoDB / Redis
  • 业务配置与资金数据结构化存储
  • 消息、动态等内容数据用文档存储承载
  • 缓存、限流、验证码、在线状态和队列统一使用 Redis
客户端Flutter / Isar / Riverpod
  • 移动端、桌面端、Web 共用一套产品逻辑
  • 本地缓存、离线队列、推送、通话和内置浏览器齐全
  • 品牌替换、业务二开和多语言扩展都有明确入口
准备购买即时通讯源码?先看价格、体验演示,再发环境给客服评估。 看价格 体验演示 联系咨询