1,介绍
MQTT+阿里云的使用 讲了如何使用阿里云,实现云端和客户端之间的通信,这篇就说客户端和客户端之间如何通信。
2,设备间通信:云产品流转
![](https://img-blog.csdnimg.cn/img_convert/6f4bc1c3e3eaff20e9c2ef2f15dbf709.png)
我们创建了一个名为:stm32_to_client的解析器:
![](https://img-blog.csdnimg.cn/img_convert/b7904d711c0e5cfb32810a8590e9ac84.png)
回到云产品流传页面,创建数据源:
![](https://img-blog.csdnimg.cn/img_convert/d4d42b6971f730394b1b1a013b34876b.png)
我这里创建了一个名为:DateSrc_stm32_to_client的数据源,然后点击添加topic:
![](https://img-blog.csdnimg.cn/img_convert/1aff3a343a26d0305c202890c397d288.png)
按照如图进行配置:产品选择你创建的产品,topic余下部分选择update,意思就是当云收到update的消息时,就会触发。
![](https://img-blog.csdnimg.cn/img_convert/310991a9be21545a03f48c3e22ab5832.png)
回到云产品流转页面,创建数据目的:
![](https://img-blog.csdnimg.cn/img_convert/2229c8cb4e0282249e387bdd1471e552.png)
操作记得选择为:发布到另一个Topic,记住我们的数据Id为1001,后面会用到
![](https://img-blog.csdnimg.cn/img_convert/acade4aa02e875695234e8de9c688d54.png)
![](https://img-blog.csdnimg.cn/img_convert/c67b8b6966f7e09c8b1b27b6b4ac8275.png)
回到解析器部分,查看我们之前解析器:
![](https://img-blog.csdnimg.cn/img_convert/599d28a7e48cd753597d4bf364fc3ecd.png)
关联数据源>关联数据目的>解析器脚本,最后点击发布脚本就OK了
其中解析器脚本代码:
注意:writeIotTopic(1001, "/i8sh22T2TuH/${TargetDevice}/user/get", select);
1001为我们创建数据目的的数据ID,记得对应上,i8sh22T2TuH为产品的ProductKey
var data = payload("json");
var select = {};
select.put("TargetDevice", getOrNull(data,"TargetDevice"));
select.put("test", getOrNull(data,"test"));
;
data.putAll(select);
if (true) {
writeIotTopic(1001, "/i8shFT74a1i/${TargetDevice}/user/get", select);
}
![](https://img-blog.csdnimg.cn/img_convert/0c0ade585eafa5232fbf70f4e71db1be.png)
![](https://img-blog.csdnimg.cn/img_convert/f498e5e2d8f761e3769f338feac74a5c.png)
![](https://img-blog.csdnimg.cn/img_convert/6472cd14e1c856dc6010f03286337ac1.png)
![](https://img-blog.csdnimg.cn/img_convert/b2b9fc3d5c9face8711897914952f0a1.png)
![](https://img-blog.csdnimg.cn/img_convert/943f40c49518a544d1ab44012d114987.png)
最后,点击启动该解析器就可以啦!!!
![](https://img-blog.csdnimg.cn/img_convert/da94a86b9ad54a49163ae9b4f3c6043c.png)
3,客户端通信
打开两个MQTT.fx客户端,分别连接我们在阿里云创建的两个设备,分别订阅各自的Topic
有不知道怎么使用MQTT.fx的可以看上篇文章
![](https://img-blog.csdnimg.cn/img_convert/e0e8d4dcc6d29c09c38616ccc9328414.png)
client客户端向云端发送解析器脚本规定好的数据格式:
{
"TargetDevice":"stm32_device",
"test":"233"
}
云端收到topic为/update结尾的topic后,向产品下的其他topic转发数据,由于stm32_device客户端订阅了本身的topic,云端自动推送该数据到订阅过的topic的客户端,至此,stm32_device客户端接收到了client客户端发送的数据,实现了客户端到客户端之间的通信。
![](https://img-blog.csdnimg.cn/img_convert/680352858c34f2a5794b01b9652af471.png)
接下来,我们是不是就可以通过云服务器实现硬件和上位机软件进行通信了呢?