# Pusher 限制整理：消息大小、presence 人数与 client events

> Pusher Channels 的固定限制，从 10 KB 事件大小、presence 100 人到每秒 10 个 client event，为什么有这些限制，以及如何在限制内设计。

Source: https://hibira.io/zh-cn/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-cn/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-cn/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-cn/migrate)。
