MySQL对接iot平台_IoT平台实现RRPC同步调用最佳实战-阿里云开发者社区

基于Pub/Sub模式的同步调用实战

1.同步调用场景

1.1 背景

MQTT协议是基于PUB/SUB的异步通信模式,无法实现服务端下发指令给设备端,同时需要设备端返回响应结果的场景。

IoT物联网平台基于MQTT协议制定了一套请求和响应的同步机制,无需改动MQTT协议即可实现同步通信。应用服务器通过POP API发起Rrpc调用,IoT设备端只需要在Timeout内,按照固定的格式回复Pub消息,服务端即可同步获取IoT设备端的响应结果。

具体流程如下:

a3306dc5a2f7f79d9b47cf2d3ab41579.png

1.2 Topic格式约定

请求:/sys/${productKey}/${deviceName}/rrpc/request/${messageId}

响应:/sys/${productKey}/${deviceName}/rrpc/**response**/**${messageId}**

$表示变量,每个设备不同

messageId为IoT平台生成的消息ID,

设备端回复responseTopic里的messageId要与requestTopic一致

示例:

设备端需要订阅:

/sys/${productKey}/${deviceName}/rrpc/request/+

运行中设备收到Topic:

/sys/PK100101/DN213452/rrpc/request/443859344534

收到消息后,在timeout时间内回复Topic:

/sys/PK100101/DN213452/rrpc/response/443859344534

2.同步调用RRPC示例

2.1 设备端代码

const mqtt = require('aliyun-iot-mqtt');

//设备属性

const options = require("./iot-device-config.json");

//建立连接

const client = mqtt.getAliyunIotMqttClient(options);

client.subscribe(`/sys/${options.productKey}/${options.deviceName}/rrpc/request/+`)

client.on(&#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值