短视频分发系统搭建实录:uniapp+ThinkPHP+推荐算法
声明:本文仅供技术学习参考,不构成任何投资建议或运营指导;任何实际部署必须遵守当地法律法规,禁止用于任何违法违规用途。
最近帮客户部署了一套短视频内容分发系统,前端用uniapp,后端是ThinkPHP,长连接和实时推荐流交给Workerman。整套系统跑在一台入门服务器上,80人同时刷视频、28个内容频道,CPU还能稳得住。这次把踩坑点记下来,给同样想搭内容平台的朋友参考。

功能实测:推荐流、内容发布、收益结算都能跑通
后台admin是个综合控制台,可以创建内容分类、配置推荐权重、查看模拟创作者收益。核心是一套推荐算法:根据用户停留时长、点赞、完播率给内容打分,再按热度加权做分发。
实时推荐流是重头戏
系统对接内容平台的三个接口:读取创作者账户数据、内容发布接口、实时视频流/推荐事件接口。实时接口是websocket数据流,每秒推送几条到30条不等,不同频道差异很大。
后端用Workerman的AsyncTcpConnection接收websocket流,transport=ssl访问wss,gzdecode解压加密数据,再用json_decode解包。断线用reConnect自动重连,基本不用人工干预。

定时任务靠Timer常驻内存跑
推荐榜单、内容审核、结算排行这些用Workerman自带的Timer做定时器,PHP-CLI常驻内存执行。省掉了复杂的缓存与异步队列,2核4G的小机器也能扛得住并发。
支付与结算
平台默认支持创作者收益自动入账,提现申请走后台人工审核,也能改成自动。充值模块可对接平台积分或第三方法币通道,后台可一键切换。

实时推荐流解析、websocket断线重连、PHP-CLI常驻内存定时器,这套组合是低配置服务器能跑起内容平台的关键。
部署要点:环境、端口、SSL一个不能漏
服务器用的CentOS 7.2,2核CPU、4GB内存、2MB带宽。uniapp打包H5和小程序,ThinkPHP跑在PHP 7.3以上,Workerman需要开启pcntl、posix扩展,且必须以命令行方式启动。
websocket与SSL
站点开了HTTPS的话,wss必须配证书。用transport=ssl时,要检查证书链完整,不然AsyncTcpConnection会报握手失败。调试阶段可以先跑ws,上线前再切到wss。
数据库与后台
MySQL 5.7够用,后台分类、标签、推荐权重都能动态改。内容表建议给category_id、status、create_time加索引,否则频道一多查询会卡。实测开到43个频道时后台加载明显变慢,降到28个就流畅。
适合人群与二开方向
这套系统适合做短视频社区、垂直内容分发、创作者激励平台。二开可以加多语言(uniapp内置i18n很方便)、对接更多内容源、或者把推荐算法升级为协同过滤。
常见问题
问:实时推荐流卡了怎么办?
答:先看Workerman进程有没有掉,再查wss握手和gzip解压是否正常。另外频道别一次开太多,低配机建议30个以内。
问:uniapp小程序端能直接用吗?
答:H5和App直接可用;小程序需要配置合法域名,wss域名必须写进小程序后台服务器域名里。
问:提现审核可以改自动吗?
答:后台有自动/手动开关,但自动打款需要先配置好支付通道密钥,建议测试环境跑通再上线。

本系统仅作技术演示,请遵守相关法律法规,禁止用于任何违法违规用途。
声明:本文仅供技术学习参考,不构成任何投资建议或运营指导;任何实际部署必须遵守当地法律法规,禁止用于任何违法违规用途。
-
Alipay QR Code Scan
-
WeChat Scan Pay