WebSocket 使用范围
WebSocket 用于单设备实时查询、设备操作和事件接收。连接、鉴权和错误处理规则对所有主题一致。
连接端点
text
POST /wlte/v1/ws/ticket
GET /wlte/v1/ws?ticket={ticket}请求主题
| Topic | 说明 |
|---|---|
session.ping | 应用层心跳 |
device.state.get | 刷新并查询单个设备状态 |
device.operation.execute | 执行设备写操作 |
device.operation.execute 当前支持:
operation.name | 权限 | 说明 |
|---|---|---|
device.relay.set | device:control | 控制一路或多路继电器 |
device.rs485.transceive | device:control | 发送 RS485 数据并等待响应 |
device.rs485.baudRate.set | device:config | 设置 RS485 波特率 |
device.relay.jogConfig.set | device:config | 设置继电器点动时长 |
事件主题
| Topic | 说明 |
|---|---|
device.connection.online | 设备上线 |
device.connection.offline | 设备离线 |
device.state.changed | 外设状态变化 |
device.power.lost | 设备断电 |
device.rs485.received | 收到未匹配到等待中请求的 RS485 数据 |
与 REST 的一致性
| 概念 | REST | WebSocket |
|---|---|---|
| 成功与失败 | code | code |
| 返回数据 | data | data |
| 幂等键 | Idempotency-Key 请求头 | data.idempotencyKey |
| 请求关联 | HTTP 请求/响应 | requestId |
| 命令对象 | data.command | data.command |
命令对象统一使用 operation、params、status 和可选的 result。命令 ID 可用于 REST 查询命令结果。
配置与状态
device.state.changed由继电器或数字输入状态变化触发,changes标识变化通道,peripherals携带完整运行状态块。- 模拟量输入或传感器读数单独变化时不会触发
device.state.changed。 - 点动时长和 RS485 波特率属于设备配置,不会通过 WebSocket 广播。
- 需要确认当前配置时,调用 REST 查询设备配置。
使用规则
- 建立连接前必须创建一次性
wsTicket。 request与reply通过requestId关联。- 客户端根据
code处理结果,不依赖message文本。 - WebSocket 不提供历史事件回放。断线重连后,应查询关键设备状态。
- 未识别的事件字段应被忽略,以便兼容后续扩展。
当前不包含
- 历史事件回放
- Webhook
- 设备组控制
- OTA
- 复杂订阅规则
