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

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

Source: https://hibira.io/zh-tw/topics/pusher-limits
Updated: 2026-10-30

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

## Pusher Channels 限制總覽

| 限制 | Pusher Channels | Hibira |
| --- | --- | --- |
| 事件資料大小 | 10 KB | Free 4 KB，Hobby 與 Starter 10 KB，Pro 與 Advanced 32 KB，Business 與 Scale 64 KB |
| 每次發佈的頻道數 | 100 | 100 |
| 每次批次請求的事件數 | 10 | 10 |
| 頻道名稱長度 | 164 個字元 | 164 個字元 |
| Presence 頻道成員數 | 100 | 100，presence-large- 頻道最多 100,000 |
| Presence 使用者物件 | 1 KB | 1 KB（presence-large- 頻道為 256 bytes） |
| Presence 使用者 ID | 128 個字元 | 128 個字元 |
| 每個連線的 client event | 每秒 10 個 | 每秒 10 個 |
| 簽章時間戳允許誤差 | 600 秒 | 600 秒 |

Pusher 的數字取自它的 [HTTP API 參考](https://pusher.com/docs/channels/library_auth_reference/rest-api/)、[頻道](https://pusher.com/docs/channels/using_channels/channels/)、[presence 頻道](https://pusher.com/docs/channels/using_channels/presence-channels/)和[事件](https://pusher.com/docs/channels/using_channels/events/)文件，查核日期 2026-10-30。各方案的連線數與每日訊息數請看 [Pusher 價格](https://hibira.io/zh-tw/topics/pusher-pricing)。

## 事件大小：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 指南](https://hibira.io/zh-tw/guides/large-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 頻道。步驟請看[遷移指南](https://hibira.io/zh-tw/migrate)。
