← 主題

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 即可。遷移指南有每個步驟。

產品名稱為其所有者的商標。