fastadmin基于thinkphp 5.0,原生不支持swoole,但可通过外挂式集成提升websocket能力:需安装swoole扩展(推荐swoole4)、引入think-swoole 2.0.0桥接库、独立编写wsserver类并用nginx反向代理实现wss支持。

FastAdmin 本身基于 ThinkPHP 5.0,原生不支持 Swoole 异步运行模式,但可以通过扩展桥接方式集成 Swoole,主要用于提升 WebSocket 服务能力或长连接场景(如消息推送、实时通知),不能直接将整个 FastAdmin 后台切换为 Swoole HTTP 服务。集成核心是“外挂式”启动 Swoole 服务,与 FastAdmin 共存,而非替换其运行模型。
1. 确认环境与安装 Swoole 扩展
这是最基础也最关键的一步,缺一不可:
- PHP 版本建议用 7.4 或 8.0(宝塔中可一键切换);
- 在宝塔「软件商店」→ 对应 PHP 版本 → 「设置」→ 「安装扩展」中,勾选并安装 swoole4(非 swoole5,因 TP5 兼容性更稳);
- 安装后务必重启 PHP 服务,并检查 phpinfo() 页面是否显示 Swoole 模块已加载,且 openssl 支持为 enabled(WSS 加密必需);
- 若需自定义编译(如启用 http2),需手动 configure 时加上
--enable-openssl --enable-http2参数。
2. 引入 think-swoole 桥接库
FastAdmin 基于 TP5,而官方 think-swoole 2.x 分支对 TP5 支持有限,推荐稳妥做法:
- 进入 FastAdmin 网站根目录(如
/www/wwwroot/your-domain); - 执行:
composer require topthink/think-swoole:2.0.0; - 若报 PHP 版本兼容警告,加
--ignore-platform-reqs强制安装; - 安装成功后,
vendor/topthink/think-swoole目录应存在,它提供命令行入口和基础生命周期钩子。
3. 编写独立的 WebSocket 服务类
不要试图改造 FastAdmin 的控制器去跑 Swoole,而是新建一个纯 Swoole 服务,与 FastAdmin 并行运行:
- 在
/application/common/library/下新建WSServer.php; - 该类继承
swoole_websocket_server,实现onOpen、onMessage、onClose; - 监听地址建议设为
0.0.0.0:9501(非 127.0.0.1),方便 Nginx 反向代理; - 如需调用 FastAdmin 的业务逻辑(如查用户、发短信),可通过
include引入 TP5 的 Loader 或使用 Db 类,但避免使用 Request/Session/View 等依赖 HTTP 生命周期的组件。
4. 配置 Nginx 反向代理与 WSS 支持
前端无法直连 ws:// 内网端口,必须经 Nginx 转发并升级为 wss://:
- 在网站配置中添加 location 块(注意放在 SSL server 块内):
proxy_pass http://127.0.0.1:9501;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_read_timeout 60000;
proxy_send_timeout 60000;
}
- 确保服务器已放行 9501 端口(宝塔防火墙 + 云服务商安全组);
- 前端连接地址写成
wss://your-domain.com/wss,Nginx 会自动处理协议升级。
整个过程不改动 FastAdmin 核心结构,只新增服务、配置和代理,既保留后台开发效率,又获得 Swoole 的实时能力。关键在于职责分离:FastAdmin 处理 HTTP 管理接口,Swoole 专注长连接通信。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











