← 专题

Pusher 替代方案:托管与自建选项对比

Ably、PubNub、Laravel Reverb、Soketi、Socket.IO、Centrifugo、Supabase、Firebase 与 Hibira 并列对比:谁运维服务器、怎么计价,以及哪些能继续用 pusher-js。

会去找 Pusher 替代方案的人,通常是三个原因之一:帐单长得比应用还快、最近的集群离用户太远,或想自己架服务器。哪一个替代方案适合,看你是哪一种原因,再加上一个技术问题:它是否沿用 Pusher 协议,让 pusher-js、Laravel Echo 和服务器端 SDK 继续能用?

各方案一览

授权与协议取自各项目的代码仓库或文档,查询日期 2026-10-26。各托管服务的价格来源链接都在比较页里。

要保留 pusher-js 和服务器端 SDK

自己运维
Laravel Reverb或 Soketi
托管
Hibira或 Laravel Cloud 的托管 Reverb

愿意重写即时通信层

自己运维
Socket.IO或 Centrifugo
托管
Ably 或 PubNub或 Supabase、Firebase
两个问题就能缩小范围

保留 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 即可。迁移指南有每个步骤。

产品名称为其所有者的商标。