第 4-8 课:设备间通信

本文档介绍了IotHub中设备间通信的设计与实现,包括主题名规划、ACL列表添加、服务端设备订阅和设备端功能封装。通过MQTT协议,设备以DeviceName为标识发送和接收消息,确保相同ProductName的设备间通信。同时提供了代码示例验证通信功能。
摘要由CSDN通过智能技术生成

这一节我们来设计和实现 IotHub 设备间通信功能。

设备间通信

到目前为止,我们在 MQTT 协议上抽象出了服务端和设备端,数据的流向是从服务端(业务系统,IotHub)到设备端,或者从设备到服务端。在某些场景下,接入 IotHub 的设备可能还需要和其他接入的设备进行通信,例如管理终端通过 P2P 的方式查看监控终端的实时视频,在建立 P2P 的连接之前,需要管理终端和监控终端进行通信,交换一些建立会话的数据。

两个不同的设备 DeviceA、DeviceB 作为 MQTT Client 接入 EMQ X Broker,他们直接进行通信的流程很简单,DeviceA 订阅主题 TopicA,DeviceB 订阅主题 TopicB,如果 DeviceA 想向 DeviceB 发送信息,只需要向 TopicB 发布消息就可以了,反之亦然。

不过 IotHub 和 DeviceSDK 需要对这个过程进行抽象和封装,DeviceSDK 需要对设备应用代码屏蔽掉 MQTT 协议层的细节,做到以下功能:

  • 设备间以 DeviceName 作为标识发送消息;
  • 当 DeviceA 收到 DeviceB 的消息时,它知道这个消息是来自 Device B 的,可以通过 Device B 的DeviceName对 Device B进行回复。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

sufish

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

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

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

打赏作者

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

抵扣说明:

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

余额充值