显示规则
在快照的 devices 中按机位 ID 找到本机位,然后依次判断:
- 找不到本机位 ID → 「机位已删除」。
program、preview任一为null→ Unknown。Unknown 不是 Off,不得显示为 Off。program为true→ Program(红;两者均为true时也显示 Program)。preview为true→ Preview(绿)。- 两者均为
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,旧版本保留至所有客户端完成升级。