华为IoTDA平台两个设备之间如何进行通信

目录

引言

华为IoTDA的M2M机制

数据转发规则的设置

测试结果

结语


引言

在一般的MQTT场景下,如果多个设备都订阅同一个topic,只要有一个设备发布这个topic的数据,其他已经订阅的设备都会收到消息,以前在Eclipse Mosquitto、EMQX、巴法云中都可以这样使用。但是在华为IoTDA平台中,如果仅仅两个设备都订阅同一个topic,并不能实现通过这个topic之间的通信,topic更多的是用于设备和平台之间的通信。本文介绍一下华为IoTDA平台下如何借助MQTT实现设备之间的通信。

华为IoTDA的M2M机制

华为云的物联网平台支持基于MQTT协议实现设备间的消息通信,它称之为M2M(Machine-to-Machine)。设备的连接和通信请求都交由平台承担,客户只需要关注自己的业务实现。可以实现设备间1到1、1到N、N到N的使用。其架构图如下所示。

M2M的使用流程如下所示:

其基本操作步骤如下: 

  1. 创建流转规则,设置转发Topic:在控制台界面创建M2M流转规则并设置转发Topic。
  2. 策略配置:在控制台界面进行策略配置。通过策略配置允许发送、接收数据的设备进行发布及订阅。
  3. 设备A、B鉴权:设备发起连接鉴权(MQTT设备),鉴权参数填写请参考:设备连接鉴权
  4. 设备B订阅Topic:设备对云服务端进行主题订阅。设备B订阅的Topic为创建流转规则中设置的Topic。若订阅成功,平台返回订阅成功ACK。
  5. 设备A数据上报:设备对云服务端进行主题发布。若发布成功,平台返回发布成功ACK。
  6. 设备B收到数据:若转发成功,设备B将收到设备A发送的数据。

数据转发规则的设置

在“管理控制台”进入IoTDA实例,在左侧导航栏“规则”中单击“数据转发”,可到数据转发界面。单击“创建规则”按照业务具体填写需要转发的数据参数,填写完成后单击“创建规则”。数据来源必须是“设备消息”,转发目标才能选择设备,即实现设备间通信,而如果选择“设备属性上报”,则转发设备不能是设备。

在创建数据转发规则的第二步,可以添加转发到的目标,包括设置转发后的Topic、缓存时间等。

在创建数据转发规则的第三步,单击页面中央的“启动规则”,完成规则设置。 

测试结果

设置之后,我对数据转发进行了测试,测试的topic可以是用户自定义的,也可以是系统定义的,如$oc/devices/<deviceid>/sys/messages/up,系统都会以test_topic发布给订阅设备。

如果转发Topic设置为:“$topic()”,则转发后Topic不变。 

如果有多条转发规则满足条件,则这些转发规则都会被执行。

结语

华为云IoTDA的M2M通信应该是很多商业平台的共同做法,比如阿里云叫“云产品流转”,虽然对于熟悉开源MQTT平台的同学来说有点麻烦,但是功能还是很强大的。包括它可以设置不同的转发条件,后面会写博文专门说明。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神一样的老师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值