← 专题

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 频道。步骤请看迁移指南。

产品名称为其所有者的商标。