阿里云物联实现不同设备间的通信

        最近在做项目的时候,发现阿里云物联同一个产品下的设备只能订阅以其设备名命名的topic,无法实现设备之间的通讯,我捣鼓了许久,终于解决了这个问题。

        查看阿里云物联的官方文档,在topic的定义下发现了以下解释:

即指定设备的topic只能由它自己订阅和发布消息,但是如果要实现设备之间的通讯该怎么办呢?继续翻阅文档:此处发现了设备之间通讯的方法:基于规则引擎的M2M设备间通信 (aliyun.com)

        我们先在阿里云物联中创建一个产品。

        产品名称随机填写,连接方式选择以太网,点击确定。

         然后点击查看产品,再按照如下步骤:

        定义后的topic名为:

        再按照以下步骤添加两个设备:

        同理,再添加一个设备:

         这里要特别注意,每个设备的topic不一样,topic中的${deviceName}为每个设备自己的名称,例如,设备send的topic为:/hzsl4SSPkDb/send/user/senselong_test,设备receive的topic为:/hzsl4SSPkDb/receive/user/senselong_test,正常情况下设备send和receive只能订阅其本身的topic,为了实现他们之间的通信,我们可以采用以下办法:只需要将send设备topic中的内容发送至receive设备的topic中。

        即:

         我们需要在规则引擎的云产品流转里面进行设置,旧版更好用一些,这里我们点击右上角返回旧版本。

         点击创建规则。

         规则名称随便填写,数据格式这里我选择的json。

         创建好规则以后,界面如下,点击处理数据中的编写SQL。这里的设备选择send设备,我们需要将它的数据发送至receive设备。

         在转发数据界面,点击添加操作,操作选择为发布到另外一个topic,设备选择receive。

        最后点击启动云产品流转。

        

         为了验证当前两设备是否能通信,我这里采用MQTTX客户端软件进行验证,下载连接MQTT X:跨平台 MQTT 5.0 桌面客户端工具

        下载完成后,我们打开MQTTX。

         上图中的参数均能在新版的阿里云物联中找到。如下图。

         将连接参数依次复制到MQTTx客户端,点击连接。

         此时,设备成功连接。

         这时,我们查看阿里云物联,设备已在线。

         接下来,我们进行主题订阅。

         点击confirm,成功订阅

         同理,我们重新打开一个mqttx窗口,登录设备send,并订阅主题,主题名已经在上文叙述过了。

        添加完成以后,我们用send设备的客户端发送一个消息测试一下, 这时我们看到receive设备成功接收到了消息。

  • 18
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Sense_long

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

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

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

打赏作者

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

抵扣说明:

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

余额充值