更新时间:2024-08-21 GMT+08:00
分享

设备间消息通信使用示例

前置步骤

  1. 创建产品和设备
    • 创建产品。访问设备接入服务,单击“管理控制台”进入设备接入控制台。选择您的实例,单击实例卡片进入。单击左侧导航栏“产品”,在页面中单击红色按钮“创建产品”。根据页面提示填写参数,然后单击“确定”,完成产品的创建。详情可见:创建产品
    • 创建设备。在设备接入控制台,单击左侧导航栏设备 > 所有设备,单击“注册设备”。根据页面提示填写参数,然后单击“确定”,完成设备的创建。详情可见:注册单个设备

配置流转规则

  1. 访问设备接入服务,单击“管理控制台”进入设备接入控制台。选择您的实例,单击实例卡片进入。
  2. 左侧导航栏单击规则 > 数据转发,进入数据转发界面。

    图1 数据转发-列表

  3. 数据转发>规则列表界面单击“创建规则”,填写规则参数,设置转发数据,配置数据过滤语句为:STARTS_WITH(notify_data.body.topic,'/test/M2M/')。

    图2 新建流转规则-M2M
    • 图2 创建数据转发规则的设置代表:在资源空间XXX中的所有设备,Topic中包含/test/M2M/的消息上报,都会触发该流转规则,转发到设置的转发目标。
    • 若希望指定某个设备上报的数据进行流转,可在SQL语句中添加:AND notify_data.header.device_id='${对应的设备ID}'。
    • 若希望指定某种产品上报的数据进行流转,可在SQL语句中添加:AND notify_data.header.product_id='${对应的产品ID}'。
      图3 数据转发-M2M_SQL语句示例
    • 关于SQL的设置,详情可见:SQL语句

  4. 设置转发目标。单击“添加”,设置转发目标为“设备”,Topic为:“$topic()”(转发后Topic不变),ttl设置为5分钟(数据缓存5分钟)。设置完成后单击“确定”。

    图4 新建转发目标-转发至设备

    由于对转发目标的范围是对应的资源空间(范围较大),只要在该资源空间下的设备进行订阅,都可以收到M2M下发的数据,因此对应的安全系数不高,在复杂场景下容易弄混,对设备侧代码配置较为麻烦。可以使用场景二: 端到端(M2M)+策略的方法管理设备的订阅与发布,从而解决该问题。

  5. 启动规则。单击页面中央的“启动规则”,完成规则设置。

    图5 启动规则-转发至设备

策略配置

由于策略暂时只在华南友好局点开启,若在其他局点中使用M2M,可先跳过该步骤,直接进行验证。

  1. 访问设备接入服务,单击“管理控制台”进入设备接入控制台。选择您的实例,单击实例卡片进入。
  2. 左侧导航栏单击设备 > 策略,进入策略界面。

    图6 设备策略-进入界面

  3. 在策略界面单击“创建策略”,填写策略参数,单击生成策略。策略的应用范围是资源空间(appId),其中资源“topic:”开头代表MQTT中的Topic,用于发布与订阅。允许发布和订阅主题:/test/M2M/*。

    图7 设备策略-创建策略(M2M)

  4. 绑定策略。下面以某个设备为例进行绑定。选择策略目标类型,单击需要绑定策略的产品或设备。

    图8 设备策略-绑定设备

验证

  1. 使用设备间消息通信功能时,具体步骤如下:
    1. 访问设备接入服务,单击“管理控制台”进入设备接入控制台。选择您的实例,单击实例卡片进入。
    2. 创建产品,产品的“协议类型”选择“MQTT”。
      图9 创建产品-M2M
  2. 1中创建的产品下分别注册设备A(test111)和设备B(test222),详细步骤可参考注册单个设备
    图10 设备-注册M2M设备
  3. 您可以根据自己的业务场景来实现设备间消息通信。下面以MQTT.fx为例说明如何进行设备间消息通信:
    1. 打开两个MQTT.fx,分别模拟设备A(test111)、B(test222)。如何使用MQTT.fx可参考使用Mqtt.fx调测使用Mqtt.fx调测。
    2. 设备B在Subscribe页面中输入Topic“ /test/M2M/#”后,单击“Subscribe”订阅。
      图11 设备B(test222)在Subscribe页面中输入topic
    3. 设备A(test111)向设备B(test222)发送消息,在设备A(test111)的MQTT.fx的“Publish”页面中,输入topic“/test/M2M/${任意单词}”(其中“${任意单词}”替换成任意单词) ,在内容输入框中输入要发送的消息(如:hello)单击“Publish”即可发送。
      图12 设备A Publish页面输入消息

      在设备B的Subscribe页面可以看到接收的消息如下:

      图13 设备B Subscribe页面展示

相关文档