Pusher 替代方案:托管与自建选项对比
Ably、PubNub、Laravel Reverb、Soketi、Socket.IO、Centrifugo、Supabase、Firebase 与 Hibira 并列对比:谁运维服务器、怎么计价,以及哪些能继续用 pusher-js。
会去找 Pusher 替代方案的人,通常是三个原因之一:帐单长得比应用还快、最近的集群离用户太远,或想自己架服务器。哪一个替代方案适合,看你是哪一种原因,再加上一个技术问题:它是否沿用 Pusher 协议,让 pusher-js、Laravel Echo 和服务器端 SDK 继续能用?
各方案一览
| 选项 | 谁运维服务器 | Pusher 协议 | 计价方式 | 授权或形式 |
|---|---|---|---|---|
| Ably | Ably | 否,自家 SDK(提供 Pusher 适配器) | 基本费加上消息、连接分钟与频道分钟 | 托管 |
| PubNub | PubNub | 否,自家 SDK | 每月活跃用户 | 托管 |
| Supabase Realtime | Supabase | 否,Supabase SDK | 连接峰值与消息,每个收到的客户端都算 | 托管,或自建 Supabase |
| Firebase Realtime Database | 否,Firebase SDK | 保存与下载的 GB 数 | 托管 | |
| Laravel Reverb | 你自己,或 Laravel Cloud | 是 | 免费软件;Laravel Cloud 依连接数收费 | MIT |
| Soketi | 你自己 | 是 | 免费软件,加上你的服务器 | AGPL-3.0 |
| Socket.IO | 你自己 | 否,自有协议 | 免费软件,加上你的服务器 | MIT |
| Centrifugo | 你自己 | 否,自有协议 | 免费软件;另有付费的 PRO 版 | Apache-2.0 |
| Hibira | Hibira | 是 | 固定月费方案:连接数与发布消息数 | 托管 |
授权与协议取自各项目的代码仓库或文档,查询日期 2026-10-26。各托管服务的价格来源链接都在比较页里。
要保留 pusher-js 和服务器端 SDK
愿意重写即时通信层
保留 Pusher 协议
保留协议的话,搬家只是改设置:在服务器端库和 pusher-js 或 Laravel Echo 里换上新的主机、key 和 secret。私有频道、presence 频道、客户端事件和 webhook 都照旧。旧客户端更新期间两边可以同时跑,所以没有「切换日」。
- 托管、兼容 Pusher:Hibira 的服务器在香港,固定月费,一次发布不论送给多少订阅者都只算一次,并包含兼容 Beams 的推送通知。Laravel Cloud 则为放在它上面的应用提供托管 Reverb,详见 Laravel Reverb 托管方式。
- 自建、兼容 Pusher:Laravel Reverb 由 Laravel 团队维护。Soketi 还能用,但最后一次发布是 2024 年 3 月,详见 Soketi 替代方案。
改用其他协议
Ably、PubNub、Supabase Realtime 和 Firebase 各有自己的 SDK,所以客户端程序、授权端点和服务器的发布程序都要改。换来的是 Pusher 没有的东西:Ably 有全球边缘网络和消息历史,PubNub 有保存和函数,Supabase 能串流 Postgres 的变更,Firebase 是会同步到客户端的数据库。
Socket.IO 和 Centrifugo 是要自己跑的服务器。Socket.IO 是放在 Node.js 应用里的库;Centrifugo 是独立的服务器,有自己的客户端 SDK。两者都代表要重写即时通信层并自己运维。
怎么选
- 问题是 Pusher 的帐单:看各家怎么计算消息。Pusher、Ably 和 Supabase 每一份送达都算;Hibira 一次发布只算一次。成本计算机可以用同样的流量比较 Pusher、Ably 和 Hibira 的价格。
- 用户在亚洲:看服务器在哪里,而不是公司在哪里。详见亚洲的即时 WebSocket 服务。
- 不想让第三方经手数据:在自己的服务器上跑 Reverb,需要多台时再加上 Redis。
- 需要 Channels 以外的功能:消息历史、数据库同步或 serverless 函数,就看 Ably、Firebase、Supabase 或 PubNub。
常见问题
最便宜的 Pusher 替代方案是哪一个?
自己跑 Reverb 或 Soketi 不用授权费,但服务器和值班时间都要钱。托管服务则要看扇出:每一份送达都计费的服务,在一个事件送给很多订阅者时会变贵,而 Hibira 一次发布只算一次。用成本计算机试算你自己的流量。
哪些 Pusher 替代方案可以用 pusher-js 和 Laravel Echo?
Laravel Reverb、Soketi 和 Hibira 使用 Pusher 协议,Laravel Cloud 的托管 Reverb 也是。Ably、PubNub、Supabase、Firebase、Socket.IO 和 Centrifugo 使用自己的 SDK。不过 Ably 也为 Pusher 协议的客户端提供适配器。
从 Pusher 换过去可以不改代码吗?
可以,只要换到兼容 Pusher 的服务:在设置里改主机、key 和 secret 即可。迁移指南有每个步骤。
产品名称为其所有者的商标。