提供基于用户维度的长连接通道服务,包括连接通道的绑定、解绑和消息接收。通过长连接服务客户端可以轻松的实现监听设备的实时变更消息。
用户中心长连接
设备消息下行到App
绑定MQTT消息通道
上行,绑定用户和clientId对应的MQTT通道。
TOPIC: /sys/${productKey}/${deviceName}/app/up/account/bind
REPLY TOPIC:/sys/${productKey}/${deviceName}/app/down/account/bind_reply
request:
{
"id": "msg_id_bind_xxx", // 自定义 msg_id
"version": "1.0",
"request": {
"clientId": "client_id_xxx" // 自定义 client_id
},
"params": {
"iotToken": "iot_token_xxx" // 表示身份 id 的 iotToken
}
}
response:
{
"id":"msg_id_bind_xxx", // 和 request 中的 id 保持一致
"code":200,
"message":"success"
}
说明 通常情况下,开发者不需要主动调用这个接口,长连接SDK中已经封装了本接口的实现。
解绑MQTT消息通道
上行,解绑用户和clientId对应的MQTT通道。
TOPIC: /sys/${productKey}/${deviceName}/app/up/account/unbind
REPLY TOPIC:/sys/${productKey}/${deviceName}/app/down/account/unbind_reply
request:
{
"id": "msg_id_unbind", // 自定义 msg_id
"version": "1.0",
"request": {
"clientId": "client_id_xxx" // 自定义 client_id
},
"params": {
}
}
response:
{
"id":"msg_id_unbind", // 和 request 中的 id 保持一致
"code":200,
"message":"success"
}
说明 通常情况下,开发者不需要主动调用这个接口,长连接SDK中已经封装了本接口的实现。
设备属性变更推送
TOPIC: /sys/${productKey}/${deviceName}/app/down/thing/properties
MESSAGE:
{
"id": "157355878660810192",
"version": "1.0",
"params": {
"iotId":"0300MSKL03667c544f69342a74Sv4Za4",
"productKey":"X5eCzh6fEH7",
"deviceName":"5gJtxDVeGAkaEztpisjX",
"items":{
"temperature":{
"time":1510292697471,
"value":30
},
"meterReadingMonth":{
"time":1510292697470,
"value":715665571
},
"alarm":{
"time":1510292697470,
"value":"normal"
}
}
},
"method":"thing.properties"
}
// 其中:items字段表示变更的属性列表(key-value健对值)。
// 以其中一个key-value举例说明:
// temperature表示属性标识符,对应属性的identifier。
// time表示属性上报value对应的时间戳。
// value表示设备属性值(value数据规范可参考TSL描述)。
设备事件变更推送
TOPIC: /sys/${productKey}/${deviceName}/app/down/thing/events
MESSAGE:
{
"id": "157355878660810192",
"version": "1.0",
"params":{
"identifier":"BrokenInfo"
"name":"损坏率上报",
"type":"info",
"iotId":"4z819VQHk6VSLmmBJfrf00107ee200",
"productKey":"X5eCzh6fEH7",
"deviceName":"5gJtxDVeGAkaEztpisjX",
"value":{
"Power":"on"
"structParam":{
"param1":"abc",
"param2":123
}
},
"time":1510799670074
}
"method":"thing.events"
}
// 其中:identifier表示事件标识符,对应事件的 identifier。
// value表示变更的事件属性列表(key-value 健值对)。
// time表示事件上报 value 对应的时间戳。
// type表示事件类型,可取值包括 info,error,block。
设备连接状态变更推送
TOPIC: /sys/${productKey}/${deviceName}/app/down/thing/status
MESSAGE:
{
"id": "157355878660810193",
"version": "1.0",
"params":{
"iotId":"0300MSKL03667c544f69342a74Sv4Za4",
"productKey":"X5eCzh6fEH7",
"deviceName":"5gJtxDVeGAkaEztpisjX",
"status":{
"time":1510292697471,
"value":0
}
}
"method":"thing.status"
}
//其中,status字段:
//value 表示设备生命周期,可取值包括,0:未激活,1:上线,3:离线,8:禁用。
//time 表示当前状态的开始时间。
子设备添加结果推送
TOPIC: /sys/${productKey}/${deviceName}/app/down/thing/topo/add/status
MESSAGE:
{
"id":"157355878660810192",
"version":"1.0",
"param":{
"status":0,
"subIotId":"xxx",
"subProductKey":"xxx",
"subDeviceName":"xxx",
"oldGwIotId":"xxx",
"oldGwProductKey":"xxx",
"oldGwDeviceName":"xxx",
"newGwIotId":"xxx",
"newGwProductKey":"xxx",
"newGwDeviceName":"xxx"
},
"method":"thing.topo.add.status"
}
//其中,status表示子设备的注册结果,可取值包括,0:添加成功,1:子设备注册成功,但设备已被其它网关绑定,2:子设备注册失败。
固件升级进度推送
TOPIC: /sys/${productKey}/${deviceName}/app/down/ota/device/forward
MESSAGE:
{
"id": "157355878660810192",
"version": "1.0",
"params": {
"iotId": "",
"srcVersion": "",
"destVersion": "",
"step": 50,
"desc": "",
"upgradeStatus": 1
},
"method":"ota.device.forward"
}
//其中:srcVersion表示最近一次升级的源版本。
// destVersion表示最近一次升级目标版本。
// step表示固件升级进度信息,可取值包括,-1:表示升级失败,-2:表示下载失败,-3:表示校验失败,-4:表示烧写失败,[1,100] 之间的数字:表示升级进度百分比。
// desc当前步骤的描述信息,如果发生异常,此字段可承载错误信息。
// upgradeStatus表示升级结果,可取值包括,0:待升级或待确认,1:升级中,2:升级异常,3:升级失败,4:升级完成。