Flutter+Go 三端IM商城源码更新:多设备踢人下线、SVGA直播动效一次到位
摘要:Like 全商业级源码发布新版,支持 Flutter 3.10+ / Go 1.25,新增多设备登录管理、踢人下线功能,直播加入 SVGA 礼物特效与声网RTC token动态颁发,后台 Vue 3 + Arco Design Pro 重构 RBAC 权限体系。
兄弟们,趁周末我又把代码推了一版。这次更新的 Like 短视频直播商城三端套件,修了不少线上踩的坑,也补了几个一直想弄的功能。先说我觉得最实用的:多设备登录管理。
多设备踢人下线,终于不用靠 session 硬撑
之前用户只能在手机端玩,现在 iPad 加手机混着用,IM 消息就乱飘。我直接改了 Go 的 JWT 分发逻辑,每个设备生成独立 token,存到 Redis 一个设备池里。用户点“安全中心”就能看到所有登录设备列表,想踢哪个直接踢,后端调一下吊销接口,那边 token 立刻失效。这个功能是给直播带货场景准备的——防止主播号被盗播。
直播 SVGA 动效: 礼物带粒子动画,不卡帧
直播礼物模块之前是简单图片飞过去,不够带劲。这次用 SVGA 格式,接入了阿里的播放引擎。以前我试过 Lottie,但文件大、性能在低端机上掉帧。SVGA 用二进制存矢量动画,10 秒的跑车动画才 200KB。而且我自研了一个动画队列控制器,连发礼物不会互相打断,先入先出播放,弹幕和礼物互不干扰。底层声网 RTC 也已经升级到 6.5,推流延迟压到 200ms 以内。
短视频 Feed 滑动流畅度提升:自研 VideoPool 替换 video_player
Flutter 原生的视频播放器 controller 管理太辣鸡了,滑多快都崩。我写了个 VideoPool,维护 N 个播放器实例(目前设 5 个),页面滑动时预加载前后各两个视频,池子里拿空闲的播放器直接复用。效果就是用户刷抖音那种感觉,毫秒级出画面。
后台 Vue 3 + Arco Design Pro: RBAC 四级授权终于能看了
后台也翻新了,从 Element Plus 换成了字节的 Arco Design Pro。权限系统做了全套 RBAC:管理员-角色-菜单-API 四级。比如运营角色只能看视频管理页面,看不到财务结算的图表。前端路由和按钮都用指令 v-permission 控制,后端的 API 中间件会再次校验。这样就不怕运营手滑改分成比例了。
这版改动不算小,但只是阶段性的。下个月我打算把直播带货的预售挂车加上,还有 IM 那块的离线推送也要整。源码一直在迭代,放心用
