在这一节中,我们来设计和实现设备生命周期管理中的禁用和删除功能。
设备禁用
设备禁用的逻辑很简单,业务系统可以通过一个接口暂停设备的接入认证,被禁用的设备无法接入 IotHub;业务系统也可以通过一个接口恢复设备的接入认证,使设备可以重新接入 IotHub,这里还暗含着另外一个操作,在禁用设备的时候,如果这个设备已经接入 IotHub,且是在线状态,那么需要将这个设备踢下线。接下来我们来一步一步实现这些功能。
Server API
首先在 Device 模型里加一个字段,来标识设备当前是否可以接入 IotHub:
// IotHub_Server/models/Device.js
const deviceSchema = new Schema({
//ProductName
product_name: {
type: String,
required: true
},
//DeviceName
device_name: {
type: String,
required: true,
},
//接入EMQX时使用的username
broker_username: {
type: String,
required: true
},
//secret
secret: {
type: String,