提供基于用戶維度的長連接通道服務,包括連接通道的綁定、解綁和消息接收。通過長連接服務客戶端可以輕松的實現監聽設備的實時變更消息。

用戶中心長連接

設備消息下行到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:升級完成。