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。
產品名稱為其所有者的商標。