MQTT文档

MQTT 权限

账户连接权限

首先是需要在平台上注册MQTT账户,然后使用MQTT账户连接MQTT服务才有权限连接。

订阅、推送权限

因为目前平台MQTT只用于向用户推送数据数据,所以平台只对用户开放订阅权限。

topic权限

目前平台开放的用户层级从高到低依此是 公司用户 --> 应用用户 --> 产品用户

与此对应的MQTT topic结构也是manage-iot-hub/{companyId}/{applicationId}/{productKey}/{eventId}/{dataTypeId}/{deviceName}。其中manage-iot-hub是固定前缀,companyId代表公司ID,applicationId代表应用ID,productKey代表产品KEY,eventId代表数据类型,dataTypeId代表数据类型,deviceName代表设备名。具体使用规则参考topic 规则

按照用户层级所能管理、获取的设备数据规则,对应的用户权限只能订阅自己所在层级下的设备数据,公司用户只能订阅所属公司下设备的数据,应用用户只能订阅所属应用下设备的数据,产品用户只能订阅所属产品下设备的数据。下面是3种层级权限账户类型的举例说明:

  • 公司用户只能订阅到对应的公司topic规则下的设备数据,例如你的公司账户登陆后在通讯管理中看到的ACL主题manage-iot-hub/18/#,那你只能订阅到公司id为18下的设备数据,允许订阅的topic可以是manage-iot-hub/18/#manage-iot-hub/18/3074/#manage-iot-hub/18/3074/xOtSGlrmmc0/#等,但如果你设置的是类似manage-iot-hub/17/#manage-iot-hub/+/3074/#等包含不属于当前用户层级的topic则是不被允许的。

  • 应用用户只能订阅到对应的应用topic规则下的设备数据,例如你的应用账户登陆后在通讯管理中看到的ACL主题manage-iot-hub/18/3074/#,那你只能订阅到公司id为18、应用id为3074下的设备数据,允许订阅的topic可以是manage-iot-hub/18/3074/#manage-iot-hub/18/3074/xOtSGlrmmc0/#等,但如果你设置的是类似manage-iot-hub/18/#manage-iot-hub/+/3074/#等包含不属于当前用户层级的topic则是不被允许的。

  • 产品用户只能订阅到对应的产品topic规则下的设备数据,例如你的产品账户登陆后在通讯管理中看到的ACL主题manage-iot-hub/18/3074/xOtSGlrmmc0/#,那你只能订阅到公司id为18、应用id为3074,产品key为xOtSGlrmmc0下的设备数据,允许订阅的topic可以是 manage-iot-hub/18/3074/xOtSGlrmmc0/#manage-iot-hub/18/3074/xOtSGlrmmc0/1/#等,但如果你设置的是类似manage-iot-hub/18/#manage-iot-hub/+/3074/#等包含不属于当前用户层级的topic则是不被允许的。