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 即可。遷移指南有每個步驟。
產品名稱為其所有者的商標。