跳转到内容

显示规则

在快照的 devices 中按机位 ID 找到本机位,然后依次判断:

  1. 找不到本机位 ID → 「机位已删除」。
  2. program、preview 任一为 null → Unknown。Unknown 不是 Off,不得显示为 Off。
  3. program 为 true → Program(红;两者均为 true 时也显示 Program)。
  4. preview 为 true → Preview(绿)。
  5. 两者均为 false → Off。
function tallyOf(snapshot, deviceId) {
const device = snapshot.devices.find((d) => d.id === deviceId)
if (!device) return 'deleted'
if (device.program === null || device.preview === null) return 'unknown'
if (device.program) return 'program'
if (device.preview) return 'preview'
return 'off'
}

切换台未就绪时,服务端会将所有机位设为 null,客户端无需另行判断。如需显示原因,请读取 source.state(connecting、ready、disconnected)和 source.error。

  • 断线、超时或出错时,立即显示 Unknown,不保留上一次的颜色。
  • 重连后收到完整快照,直接替换旧状态。
  • 服务重启后,旧的 rev 不再匹配,/poll/v1 会立即返回新快照。
  • 客户端应忽略无法识别的字段和消息 type。
  • v1 只新增字段,不删除字段,也不改变字段含义。如需删除或修改,将发布新版本 /ws/v2、/poll/v2,旧版本保留至所有客户端完成升级。