跳到正文

应用场景

活动与事件流

审计日志、订单流和故障时间线其实是同一个形状:一个只做追加、而且有人正在看的列表。用 HTTP 加载,用事件保持最新。

private-account-3b1
  • private 频道
  • 事件
  • webhook

它是怎么工作的

  1. 01先加载,再 subscribe先用 HTTP 取到这一页,然后再 subscribe——就按这个顺序,才不会有东西掉进缝里。
  2. 02publish 时追加新条目和 HTTP 负载的形状一致,所以一套渲染就能同时应付两边。
  3. 03按频道划分范围一个账户一个频道,鉴权就很简单——订阅本身就是那道检查。

值得知道

重连的客户端会有一段空档。与其假定套接字全都接住了,不如把流的头部重新取一遍。

看代码

feed.js
js
const feed = await fetch('/api/activity?limit=50').then((r) => r.json())render(feed.items)// Same shape as the HTTP payload, so one renderer covers both.pusher.subscribe('private-account-3b1').bind('activity', (item) => {  prepend(item)})

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

大家还在构建什么

全部应用场景
presence-room-42

实时聊天

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

private-user-1e9

通知

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

private-metrics

实时仪表盘

一变化就推送指标,而不是用轮询去要。

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

Support