这一节课,我们来完成指令下发剩余部分的功能, 当设备对指令进行回复以后,IotHub 会通过 RabbitMQ 将设备的回复通知到业务系统,最后我们将 IotHub Server 端的代码和 DeviceSDK 的代码进行联调。
通知业务系统
指令处理的最后一步就是将设备对指令的回复再转发到业务服务器,具体流程:
- IotHub Server 通过 WebHook 获取设备对指令的回复消息;
- IotHub Server 通过解析消息的主题名获取指令回复的元数据;
- IotHub 通过 RabbitMQ 对指令的回复转发到对应的业务系统。
首先在 WebHook 里添加对指令回复消息的处理:
//IotHub_Server/messages/message_service.js
static dispatchMessage({topic, payload, ts} = {}) {
...
const cmdRespRegx = pathToRegexp(cmdRespRule)
var result = null;
if ((result = topicRegx.exec(topic)) != null) {
...
} else if ((result = statusRegx.exec(topic)) != null) {