跳到正文

应用场景

实时应用状态

实时的大多数场景并不是聊天。是一个跑完的任务、一笔发出的订单、一次变红的构建——是有人正盯着旧副本时悄悄变掉的状态。

private-job-7c4
  • private 频道
  • 事件

它是怎么工作的

  1. 01subscribe 那个资源用屏幕上那样东西来命名的 private 频道——一个任务、一笔订单、一次部署。
  2. 02publish 状态转移每一次已提交的状态变化,都连同新状态一起 publish。
  3. 03收敛客户端把它应用上;漏掉某次转移的客户端会在重连时用 HTTP 重新读一遍。

值得知道

等写入提交之后再 publish。先 publish 会展示一个数据库并不会确认的状态——万一事务回滚了呢。

看代码

job.js
js
// Publish the transition after it is committed, not before.await job.markComplete()await pusher.trigger(`private-job-${job.id}`, 'state-changed', {  state: 'complete',  finished_at: job.finishedAt.toISOString(),})

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

大家还在构建什么

全部应用场景
presence-room-42

实时聊天

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

private-user-1e9

通知

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

private-metrics

实时仪表盘

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

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

Support