跳到正文

应用场景

实时仪表盘

做轮询的仪表盘在两次请求之间一直是错的,而且你容忍多少错,它就贵多少。改成变化时 publish,就把这件事反了过来。

private-metrics
  • private 频道
  • 事件
  • webhook

它是怎么工作的

  1. 01打开时 subscribe一个 private 频道,范围就限定在仪表盘所显示的东西上。
  2. 02变化时 publish某个数字动了就发一个事件,而不是靠一个没人调过的定时器。
  3. 03只在有人看时才计算在线人数的 Webhook 让一项昂贵的聚合只在有人在看的时候运行。

值得知道

每秒动几百次的指标,应当在 publish 之前先做批量或采样。这个判断属于有语义的那一侧——你这一侧。

看代码

webhooks.js
js
// Start the aggregation when the first viewer arrives,// stop it when the last one leaves.for (const event of hook.getEvents()) {  if (event.name === 'channel_occupied') startAggregation(event.channel)  if (event.name === 'channel_vacated') stopAggregation(event.channel)}

用官方的 Pusher 库写成,未作任何修改——没有 PushCaster 的包要装。 完整文档

大家还在构建什么

全部应用场景
presence-room-42

实时聊天

建立在 presence 频道上的房间、成员与正在输入的提示。

private-user-1e9

通知

服务器的一个事件,送达用户开着的每一个界面。

presence-doc-9f2

协作界面

成员可被跟踪的共享文档、画布和光标。

建一个应用,把它做出来。

Support