行业资讯

Flutter+Go+Vue 三端源码复盘:Like 短视频直播商城 IM 是怎么炼成的?

高染网络·2026-06-12·131 阅读

摘要:分享一套 Flutter+Go+Vue 三端商业源码的实际架构与踩坑记录,从技术选型到功能实现,聊聊短视频、直播、商城、IM 的落地细节。

先说说为啥搞这么一套玩意

去年接了个单子,客户要做类似抖音+快手的短视频平台,还要带直播购物和即时通讯。一开始想拼凑开源项目,但发现 Flutter 生态里完整的商业级源码几乎没有。后来干脆自己从头搭了一套,技术栈全上最新的:Flutter 3.10 + Go 1.25 + Vue 3,前后端加移动端全包。现在源码拿出来卖,28888 元,说实话比找外包团队省心多了。

这套东西我跑了大半年,线上有几千日活,没出过大毛病。今天把我的思路和掉坑的经验写出来,给想搞同类型产品的人当个参考。

移动端 Flutter:一套代码打天下?真能行

Flutter 3.10 搭配 Dart 3.x,一套代码生成 iOS 和 Android,Web 也能跑。状态管理没用 Bloc,用的 ValueNotifier + Repository 模式,轻量好维护。网络层 http 配合 WebSocket,视频播放用 video_player 加自己写的 VideoPool 控制器池——面试时能吹牛,实际是为了解决滑动列表时视频预加载和内存回收。

直播部分接的声网 Agora RTC,推拉流稳定,token 实时生成。支付用的 tobias(支付宝官方插件),礼物特效是 SVGA 格式,比 Lottie 更流畅。

踩坑记录:Flutter 的 WebSocket 在 Android 后台容易断,后来在后端加了心跳重连机制才稳住。另外多设备登录管理,前端得维护 WebSocket 连接列表,踢人时发指令断开。

后端 Go:Gin+GORM 稳如老狗

后端用 Go 1.25 + Gin 框架,数据库 MySQL 8.0 + Redis 6。ORM 用 GORM,Redis 客户端 go-redis/v9。WebSocket 用 gorilla/websocket,单机万级并发没问题。

JWT 鉴权分用户态(7 天)和管理员态(24 小时),管理员权限是完整的 RBAC:管理员、角色、菜单、API 四级授权。Vue 后台用 Arco Design Pro,配合 Vue Router 和 Pinia,权限控制在前端也映射了路由和按钮级别。

踩坑记录:一开始 JWT 过期时间设太短,用户经常被踢。后来改 7 天 + 刷新令牌。WebSocket 连接数一高,gorilla/websocket 的 Hub 会成瓶颈,做了基于 channel 的读写分离才解决。

功能模块怎么落地?直播带货是重头

短视频部分有 4 个 Tab:直播、同城、关注、推荐。后台可以单独开关任一 tab。视频播放器是抖音同款上下滑全屏 Feed,双击爱心动画,单击暂停。评论支持子评论和 @,弹幕用 Redis 缓冲,滚动 2 小时。视频打赏直接进作者钱包,平台抽成比例可后台配。

直播流程:创建直播间->选分类->上封面->开播。弹幕高频写入 Redis,后端异步批量入库。礼物支持 SVGA 动画和多档梯度,主播分成进钱包。带货功能:直播间挂商品,底部跳商品详情页。

商城部分没做大而全,仅支持直播间挂载商品,够用了。IM 模块跑了私信和消息通知,基于 WebSocket 实现,离线消息存 Redis,上线后拉取。

踩坑记录:直播带货的商品数据是从商城系统同步过来的,一开始直接查商城 DB,耦合太紧。后来改成通过 API 获取,前端展示更灵活。视频审核做了二次审核,发布后先通过 AI 初筛,人工再复检。

支付与短信:少走弯路的配置

支付集成了支付宝官方 tobias 插件,iOS 和安卓都能跑通。短信通道内置了短信宝,但 3 行配置就能换阿里云或腾讯云。注册登录支持手机号、密码、短信验证码,还有忘记密码。

用户管理功能挺全:多设备登录管理、踢人下线、资料编辑(头像、封面、Like ID、生日等)、隐私设置(作品可见、评论权限等)。拉黑、举报、注销、单项封禁(直播、视频、社区、私信四个维度)。

后台用 Vue 3 + TypeScript + Vite 5,Arco Design Pro 的组件不错,ECharts 做统计图表,完整 RBAC 管理。

总结一下:这套代码适合想快速上线短视频+直播+电商产品的团队,或者想学习 Flutter+Go 全栈的同学。源码已经商用验证过,坑基本都填平了。28888 的价格比雇一个高级工程师一个月工资还少,值不值自己算。