消息队列功能为用户提供了一种可靠的设备与第三方服务端之间的异步通信机制。开启此功能后,物联网智能视频服务(消费版)平台会将相应产品下所有设备的指定类型消息都转发到腾讯云的消息队列中,然后第三方用户使用消息队列提供的 SDK 从消息队列中拉取消息。
适用场景
消息队列功能最大的特点是与腾讯云的多种消息队列组件结合,提供了可靠的消息存储与传输机制。消息队列甚至可以和其它腾讯云的计算模块连通,提供无缝的计算服务。基于消息队列功能的特点,它适用于以下场景:
1. 需要快速稳定的接收设备消息,特别是设备会产生海量消息或者消息量在不同时间点会有很大的波动时。
2. 需要实时地处理设备状态消息,保证设备状态信息不会丢失。
3. 需要与其它腾讯云计算模块连接,处理海量设备信息。
支持的消息队列
说明:
支持转发的消息类型
目前消息队列功能会转发以下消息类型:
设备在线状态变更。
设备常量属性(ProConst)变更。
设备可写属性(ProWritable)变更。
设备控制(Action)。
设备只读属性(ProReadonly)变更。
设备事件(Event)。
标题 | 说明 |
设备在线状态变更(log_type=1) | 即设备的上下线变化通知。 |
设备常量属性 ProConst 变更(log_type=2) | 物模型常量属性在设备正常运行过程中,其值不会发生改变。在设备版本升级后,相关属性会发生变更。 |
设备 ProWritable 变更(log_type=3) | 物模型可写属性用于向设备写入设置参数,平台在接收到对设置物模型的设置时记录。 |
设备 Action 控制(log_type=4) | Action 用于对设备的控制,设备接收到控制命令后触发。 |
设备 ProReadonly 变更(log_type=5) | 物模型只读属性用于描述设备的运行状态,平台在接收到设备物模型状态变更时记录。 |
设备 Event(log_type=6) | Event 是设备运行过程中主动触发的事件。 |
转发的消息格式
上报到消息队列的消息格式采用 JSON 字符串的形式,格式如下所示:
{"msgId":"5b8ea425-cfa0-46df-b36e-658566d121e9","dev_tid":"031400005e005a3906654d20182f07cb","log_type":2,"occur_time":1582795889,"data_object":"ProConst._versionInfo","old_value":{"sdkVer":"1.0.0","swVer":"1.0.0","hwVer":"1.0.0"},"new_value":{"sdkVer":"1.0.0","swVer":"1.0.1","hwVer":"1.0.0"}}
下面是各个字段的含义:
标题1 | 标题2 |
msgId | 该消息的唯一 ID。 |
dev_tid | 设备 TID。 |
log_type | 消息类型。 |
occur_time | 消息产生的时间戳,单位秒。 |
data_object | 消息对应的物模型路径,如为完整的物模型数据,例如"ProReadonly.online"。 |
old_value | 消息对应的物模型数据变更前的值。 |
new_value | 消息对应的物模型数据变更后的值。 |