Soketi 替代方案:Pusher 协议服务器该迁到哪里
Soketi 最后一次发布是 2024 年 3 月。可以迁移到的兼容 Pusher 选项、配置要改什么,以及如何不停机切换。
Soketi 让自建 Pusher 协议服务器变得很简单,现在仍有很多 Laravel 和 Node.js 应用跑在上面。不过这个项目的脚步慢了下来,依赖它的团队开始问下一步要去哪里。因为 Soketi 使用 Pusher 协议,答案可以只是改设置,而不是重写。
Soketi 的现况
| 最新版本 | 1.6.1,2024-03-25 发布 |
| 最新 commit | 依赖更新,2025-03-03 |
| 授权 | AGPL-3.0 |
| README 对维护的说明 | 提到更新与支持都不频繁 |
数据取自 Soketi 代码仓库及其版本列表,查询日期 2026-10-26。
今天能用的服务器,可以再用很久。风险在后面:服务器无法在新版 Node.js 上构建、安全性修补没人发布,或某个 bug 得自己修。对于承载每位用户连接的组件,值得在变得紧急之前先规划。
兼容 Pusher 的搬家选项
这些都沿用 pusher-js、Laravel Echo 和 Pusher 服务器端库,所以频道、授权端点和事件都不用动。
| 选项 | 谁运维 | 你要承担什么 | 费用 |
|---|---|---|---|
| Laravel Reverb | 你自己 | 和 Soketi 一样的工作:进程、TLS、文件数上限、扩展时的 Redis | 免费软件加上服务器 |
| Laravel Cloud 的托管 Reverb | Laravel Cloud | 你的应用也必须放在 Laravel Cloud | 100 条连接每月 5 美元起 |
| Pusher Channels | Pusher | 不用运维;每一份送达都算一则消息 | 500 条连接每月 49 美元起 |
| Hibira | Hibira | 不用运维;服务器在香港 | 免费方案,500 条连接每月 19 美元起 |
价格取自 Laravel Cloud 的价格文档与 pusher.com/channels/pricing,查询日期 2026-10-26。
也可以离开 Pusher 协议,改用 Socket.IO、Centrifugo 或 Ably,但客户端和服务器的程序都要重写。这些在 Pusher 替代方案一页有介绍。
之前
之后
设置要改什么
只有连接信息。跑在 Soketi 上的 Laravel 应用,.env 通常把 Pusher 驱动指向你自己主机的 6001 端口。换到托管服务,就改指向那个服务:
BROADCAST_CONNECTION=pusher
PUSHER_APP_ID=YOUR_APP_ID
PUSHER_APP_KEY=YOUR_APP_KEY
PUSHER_APP_SECRET=YOUR_APP_SECRET
PUSHER_HOST=ws.hibira.io
PUSHER_PORT=443
PUSHER_SCHEME=https在 pusher-js 或 Laravel Echo 里,把 wsHost 和端口号改成对应的值,并保留 forceTLS: true。Soketi app manager 的设置,例如每个 app 的连接上限或允许的来源,改到新服务的控制台里设置。
不停机切换
- 在新服务创建 app,拷贝它的凭证。
- 让服务器把每个事件同时发布到 Soketi 和新服务。Pusher 服务器端库创建两个实例的成本很低。
- 发布客户端的变更。新开的页面会连到新主机;旧分页和旧版 App 仍连在 Soketi。
- 等 Soketi 的连接数降到零或接近零,停止发布给它,然后关掉。
Webhook 也一样:在第 3 步之前,先把你的端点注册到新服务。从 Pusher 搬家的步骤相同,见迁移指南。
托管服务多给你什么
除了不用运维服务器,托管服务还提供 Soketi 要你自己处理的工具:显示连接数与消息数的控制台、即时显示每个事件的调试控制台、webhook,以及对照方案上限的用量。

常见问题
Soketi 还有在维护吗?
最后一个版本 1.6.1 于 2024-03-25 发布,之后的 commit 都是依赖更新。README 本身也提到更新与支持不频繁。它还能跑,但应该规划替代方案。
最接近 Soketi 的替代方案是什么?
想继续自建就用 Laravel Reverb;不想运维服务器就用兼容 Pusher 的托管服务。两者都沿用 Pusher 协议,代码不用改。
离开 Soketi 一定要改客户端程序吗?
不用,只要换到另一个 Pusher 协议的服务器或服务。改的是 .env 以及 pusher-js 或 Echo 选项里的主机、端口号、key 和 secret。
产品名称为其所有者的商标。