← 主題

Pusher 限制整理:訊息大小、presence 人數與 client events

Pusher Channels 的固定限制,從 10 KB 事件大小、presence 100 人到每秒 10 個 client event,為什麼有這些限制,以及怎麼在限制內設計。

除了連線數和每日訊息數這兩個方案限制,Pusher Channels 對單一事件、頻道和 presence 成員也有固定上限。正式環境裡最常遇到的錯誤都來自這裡:payload 太大被回 413、client event 被拒絕、presence 頻道滿 100 人後再也加不進去。

Pusher Channels 限制總覽

Pusher 的數字取自它的 HTTP API 參考、頻道、presence 頻道和事件文件,查核日期 2026-10-30。各方案的連線數與每日訊息數請看 Pusher 價格。

事件大小:10 KB 上限

事件資料超過 10 KB 時,Pusher 會回 HTTP 413,單筆和批次都一樣。限制算的是 JSON 編碼後的 data 欄位,所以跳脫的引號和中文字會比看起來佔更多空間。

常見的避開方式:

  • 只送 ID,讓前端用你自己的 API 取資料。
  • 只送有變動的欄位,不送整個物件。
  • 長清單拆成多個事件,或分頁。

Hibira 的上限依方案而定,需要 20 或 50 KB 的 payload(例如文件差異、帶 metadata 的 AI 回應片段)在 Pro 或 Business 方案就放得下,前端不用改。

Presence 頻道:100 人上限

Pusher 的 presence 頻道最多 100 個成員。每個成員訂閱時會收到完整成員清單,每次有人加入或離開也會收到事件,這就是上限存在的原因:1,000 人時,每次加入都要送 1,000 份。

Hibira 的 presence- 頻道維持同樣的 100 人上限,既有程式行為不變。直播、線上講座或遊戲大廳這類大型場合,可以用 presence-large- 頻道,最多 100,000 人,送的是人數和批次變動而不是整份清單。前端寫法請看大型 presence 指南。

Client events

Client event 讓瀏覽器不經過你的伺服器直接送給其他訂閱者,適合「正在輸入」或游標位置。在 Pusher 上必須逐個 app 開啟,只能用在 private- 和 presence- 頻道,事件名要有 client- 前綴,不會回送給發送者,每個連線每秒最多 10 個。Hibira 遵循同樣的規則,符合 Pusher 限制的前端不用改。

游標這類高頻輸入,建議最多每 100 ms 送一次,並丟掉中間的位置,不要排隊累積。

頻道與請求限制

頻道名稱最長 164 個字元(包含 private- 或 presence- 前綴),只能用英文字母、數字和 _ - = @ , . ;。一次發佈最多 100 個頻道,一次批次請求最多 10 個事件。簽章請求的時間戳必須和伺服器時間相差 600 秒以內,所以時鐘漂移的伺服器會收到 401。

常見問題

Pusher 的訊息大小上限是多少?

事件資料 10 KB,超過會被回 HTTP 413。Hibira 的上限是 Free 4 KB、Hobby 與 Starter 10 KB、Pro 與 Advanced 32 KB、Business 與 Scale 64 KB。

Pusher 的 presence 頻道可以有多少人?

100 人。Hibira 的 presence- 頻道同樣是 100 人,另外提供最多 100,000 人的 presence-large- 頻道,傳送人數和批次變動,而不是完整清單。

換到 Hibira 需要改程式嗎?

不用。協定、前後端函式庫和這些限制都一樣,只是多了可以選用的更大 payload 和大型 presence 頻道。步驟請看遷移指南。

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