智言发 IM 智言发 IMZHIYANFA

交付总览/技术架构

链路上每一环都给你源码

很多方案只给客户端 SDK,网关和路由是黑盒。这里把整条链路摊开:你能改任意一环,也能把它整体搬进自己的机房。

链路 13 环 部署形态 5 种 含一键安装脚本

01 / 消息链路 ✓✓整条链路可控 13 环 · 5 个阶段 同会话严格有序

一条消息从发出到落地

整条链路按发生顺序排开,并按阶段分组。每一环都对应源码里一个可独立改动的位置,没有一环是黑盒。

01

接入网关

2 项
01

长连接接入

客户端先取一次性 ws-token,经 Nginx 升级为 WebSocket 长连接。

02

帧协议编解码

自定义 Action 帧协议,默认 Protobuf 编解码并可切 JSON。

02 / 部署拓扑 四层分层 虚线为可选

按这张图划分机器

最小可用是单台机器装齐全部服务,压力上来再把媒体、存储与从节点拆出去。虚线框的组件不装也能跑。

01 / 客户端Flutter 一套代码构建

安卓Flutter + Kotlin 原生桥
iOSFlutter + Swift 原生聊天页
桌面端Mac / Windows / Linux
Web功能子集,见能力对照
管理后台Vue 3 + Vben Admin
WebSocket · 实时消息 HTTPS · 接口调用

02 / 接入层Nginx 反代 + coturn 旁挂

Nginx反代 /api 与 /admin/api 到 9090 · 升级 /ws 长连接 · 托管 /uploads 与后台页面
coturnTURN / STUN 中继,与客户端直连 UDP,不经 Nginx
转发至 :9090

03 / 应用层单个 Go 进程,systemd 托管

服务端主进程 Go 1.25 + Gin,一个二进制承载全部业务
长连接网关连接管理 · 64 分片锁 · 多组 Worker
业务服务层消息 · 群组 · 钱包 · 朋友圈 · 语音房
后台接口用户 · 审核 · 系统配置下发
定时任务定时消息投递 · 会员对账
LiveKit群通话媒体转发,可单独部署到另一台机器
数据读写 外部服务,可关闭

04 / 存储与外部依赖默认全在本机,可指向自有机房

MySQL 8.0关系数据,必需
Redis 7会话 · 离线队列 · 幂等 · 限流,必需
MongoDB 7.0消息主存,默认
ScyllaDB消息主存,配置后优先
NATS 2.11节点间消息总线
MinIO媒体文件,留空则落本地磁盘
Meilisearch全文搜索
极光推送可关闭 / 可替换
华为 HMS可关闭 / 可替换
短信网关可关闭 / 可替换
Apple 内购验单仅 iOS 内购需要

消息主存优先级:ScyllaDB → MongoDB → MySQL 逐级降级。未配置 ScyllaDB 时写 MongoDB,MongoDB 连接失败再降到 MySQL,三套实现同构。

双节点形态:从节点只装应用层,经 NATS 与主节点互通,存储仍连主节点
03 / 技术栈 主流长期维护 无冷门依赖

用的都是招得到人的技术

技术选型有意保守。你接手之后要招人维护,冷门框架只会变成负债。

服务端

Go 1.25 + Gin
Go 1.25.0Gin 1.12.0 GORM 1.26.0MySQL 8.0 Redis 7MongoDB 7.0

客户端

Flutter
Flutter / DartGetX 4.6.6 Dio 5.4sqflite 2.3
04 / 部署形态 ✓✓5 种起法 install.sh 一键装

从一台机器起,按需拆开

交付包里带一键安装脚本,中间件和服务一次装齐。要拆机器时同一个脚本可以只装其中某个组件。

✓✓

单机全栈

默认形态 · 一键脚本

install.sh 在单台机器装齐中间件,服务端以 systemd 托管单个 Go 进程。

✓✓

双节点主从

双机

从节点只装应用、连主节点存储,跨节点消息经 NATS 转发。

容器化目前只覆盖管理后台(多阶段 Dockerfile + nginx 托管静态产物)。服务端本身不提供容器编排清单,如果你要上 Kubernetes 需要自己写。

工程规模

这几个数是从仓库里数出来的,不是压测结论。上面那张容量表是按配置和使用强度推的规划参考,同样不是实测值——真实的并发承载、消息吞吐与 P99 延迟,得在你自己的机器上跑一遍才算数,压测工具随源码交付。

67已交付功能模块
40+业务数据表

代码里写死的约束

可改
单条消息上限 64KB 离线队列保留 7 天 单用户离线上限 2000 条 推送通道缓冲 5 万条 连接管理 64 分片锁 全局限流 1000 rps 长连接读超时 86400 秒
技术对接

想看具体代码结构?

可以安排一次技术对接,带你过一遍仓库目录、数据库结构与部署脚本,再决定要不要买。

查看授权与交付