这一节我们来实现 RPC 式调用的设备端代码,首先会使用 EMQ X 的服务端订阅功能自动订阅对应的主题,然后在 DeviceSDK 中修改用于匹配主题名的正则表达式,从 RPC 式调用的主题中提取指令的元数据,最后将服务端和设备端连在一起进行测试。
添加ACL列表
由于设备端需要将回复发布到:
rpc_resp/:productName/:deviceName/:commandName/:requestId/:messageId
,所以需要把这个新的主题加入到设备的 ACL 列表里:
//IotHub_Server/models/devices
deviceSchema.methods.getACLRule = function () {
const publish = [
`upload_data/${this.product_name}/${this.device_name}/+/+`,
`update_status/${this.product_name}/${this.device_name}/+`,
`cmd_resp/${this.product_name}/${this.device_name}/+/+/+`,
`rpc_resp/${this.product_name}/${this.device_name}/+/&#