HTTP/2转储功能适用于生活物联网平台与企业服务器之间的消息流转。通过集成和使用HTTP/2 SDK,即可实现身份认证、消息接收的能力。我们推荐使用HTTP/2的方式推送设备数据(如设备状态数据、设备控制记录等),用户信息数据等。
前提条件
说明 当开启数据同步后,集成HTTP/2客户端SDK来订阅数据。如果通过控制台关闭数据同步再开启时,客户端SDK需要重新进行连接流程,否则无法正常接收数据。如果切换不同的HTTP/2客户端,需要把之前的客户端断开,再连接新的客户端。否则新客户端无法正常接收数据。
HTTP/2 SDK使用
消息格式
- 物的属性变更消息
topic:
/${productKey}/${deviceName}/thing/event/property/post
消息字段说明如下。
参数 子参数 子参数 类型 含义 deviceType String 设备所属品类 gmtCreate Long 数据流转消息产生时间,自1970-1-1起流逝的毫秒值 iotId String 设备的唯一ID productKey String 设备所属产品的唯一标识符 deviceName String 设备名称 items JSON 变更的状态列表 attribute String 发生变更的属性,具体取值由具体情况确定 value 具体数据类型由具体情况确定 变更值 time Long 设备属性发生变化的时间,自1970-1-1起流逝的毫秒值 消息示例如下。
{ "deviceType": "SmartDoor", "iotId": "Xzf15db9xxxxxxxxWR001046b400", "productKey": "a17xxxxTYNA", "gmtCreate": 153xxxx145304, "deviceName": "Xzf15xxxxucTHBgUo6WR", "items": { "WIFI_Rx_Rate": { "value": 74274, "time": 1534299145344 } } }
- 物的事件变更消息
topic:
/${productKey}/${deviceName}/thing/event/{tsl.event.identifier}/post
消息字段说明如下。
参数 子参数 类型 含义 deviceType String 设备所属品类 iotId String 设备的唯一ID productKey String 设备所属产品的唯一标识符 deviceName String 设备名称 identifier String 事件标识符,对应事件的identifier name String 事件名称 type String 事件类型 time Long 设备上报value对应的时间,自1970-1-1起流逝的毫秒值 value JSON 变更的事件属性列表:key-value键值对 key String 属性key value 具体数据类型由具体情况确定 属性取值 消息示例如下。
{ "deviceType": "SmartDoor", "identifier": "Doorxxxxication", "iotId": "Xzf15db9xxxxxxxxx01046b400", "name": "开门通知", "time": 1534319108982, "type": "info", "productKey": "a17xxxxTYNA", "deviceName": "Xzf15xxxxucTHBgUo6WR", "value": { "KeyID": "x8xxxxxkDY", "LockType": 3 } }
- 设备服务返回消息
topic:
/${productKey}/${deviceName}/thing/downlink/reply/message
消息字段说明如下。
参数 类型 含义 gmtCreate Long 数据流转消息产生时间,自1970-1-1起流逝的毫秒值 iotId String 设备的唯一ID productKey String 设备所属产品的唯一标识符 deviceName String 设备名称 requestId String 阿里云产生和设备通信的信息ID code Integer 调用的结果信息 message String 结果信息说明 topic String 服务调用下行时使用的topic data Object 设备返回的结果,非透传之间返回设备结果,透传则需要经过脚本转换 消息示例如下。
{ "gmtCreate": 151xxxx39881, "iotId": "4z819VQHxxxxxxxxxxxx7ee200", "productKey": "p1gxxxxBd", "deviceName": "xxxxxxxxxx", "requestId": "1234", "code": 200, "message": "success", "topic": "/sys/p1gsv0teUBd/xxxxxxxxxx/thing/service/property/set", "data": {} }
- 物的状态变更消息
为了提高消息有效性,设备上下线过于频繁时,会对消息进行筛检。
topic:
/${productKey}/${deviceName}/mqtt/status
消息字段说明如下。
参数 子参数 类型 含义 deviceType String 设备所属品类 gmtCreate Long 数据流转消息产生时间,自1970-1-1起流逝的毫秒值 iotId String 设备的唯一ID action String 设备状态变更动作: - online:上线动作
- offline:下线动作
productKey String 设备所属产品的唯一标识符 deviceName String 设备名称 status JSON 状态信息,元素包括:value-状态值,time-发生变化的时间 time Long 设备上下线状态发生变化的时间,自1970-1-1起流逝的毫秒值 value String 设备上下线状态 value状态值定义:
- 1:在线
- 0:离线
消息示例如下。
{ "deviceType": "SmartDoor", "iotId": "Xzf15dxxxxxxxxxxxxxxxx01046b400", "action": "online", "productKey": "a17xxxxxxTYNA", "gmtCreate": 153xxxx1368, "deviceName": "Xzf1xxxxxxxxxxxxgUo6WR", "status": { "time": 1534319611368, "value": "1" } }
- 用户绑定变更消息
用户绑定/解绑设备产生的回流消息,用于同步用户与设备的绑定、解绑。
topic:
/${productKey}/${deviceName}/thing/awss/enrollee/user
消息字段说明如下。
参数 子参数 类型 含义 bind bool true-绑定;false-解绑 productKey String 设备所属产品的唯一标识符 deviceName String 设备名称 iotId String 设备的唯一ID messageCreateTime JSON 消息创建时间 identityInfos list 用户信息列表 identityId String 用户身份ID scopeId String 隔离ID tenantId String 租户ID owned Integer 拥有标记 - 0:分享者
- 1:拥有者
params Map 扩展参数(暂未使用) { "bind":true, "productKey": "123xxxx569", "deviceName": "deviceNamexxxx34", "iotId": "", "messageCreateTime": 151xxxx9881, "identityInfos":[ { "identityId":"50xxxxxxxxxxxx62060259", "scopeId":"", "tenantId":"1D89B5xxxxxxxxxxxxxxxx861678FF", "owned":1 } ], "params":{ } }