
# 设备间消息通信使用说明
#### 使用流程
以下流程主要以设备间一对一为例：
图1M2M使用流程
![](https://support.huaweicloud.com/usermanual-iothub/figure/zh-cn_image_0000001725440956.png "点击放大")
1. 创建流转规则，设置转发Topic：在控制台界面创建M2M流转规则并设置转发Topic。
2. 策略配置：在控制台界面进行策略配置。通过策略配置允许发送、接收数据的设备进行发布及订阅。
3. 设备A、B鉴权：设备发起连接鉴权（MQTT设备），鉴权参数填写请参考：[MQTT设备连接鉴权](https://support.huaweicloud.com/api-iothub/iot_06_v5_3009.html)。
4. 设备B订阅Topic：设备对云服务端进行主题订阅。设备B订阅的Topic为创建流转规则中设置的Topic。若订阅成功，平台返回订阅成功ACK。
5. 设备A数据上报：设备对云服务端进行主题发布。若发布成功，平台返回发布成功ACK。
6. 设备B收到数据：若转发成功，设备B将收到设备A发送的数据。
 
#### 操作步骤
以下示例主要针对平台中创建流转规则配置。通过修改流转规则可以实现不同场景的应用。
1. 访问[设备接入服务](https://www.huaweicloud.com/product/iothub.html)，单击"管理控制台"进入设备接入控制台。选择您的实例，单击实例卡片进入。
2. 在左侧导航栏"规则"中单击"数据转发"，可到数据转发界面。 
   图2数据转发-列表   
   ![](https://support.huaweicloud.com/usermanual-iothub/figure/zh-cn_image_0000001982215757.png "点击放大")
   
   
3. 单击"创建规则"按照业务具体填写需要转发的数据参数，填写完成后单击"创建规则"。 
   图3新建流转规则-M2M   
   ![](https://support.huaweicloud.com/usermanual-iothub/figure/zh-cn_image_0000001982218753.png "点击放大")
   表1创建数据转发规则-参数说明 
   |  规则名称  |                                                                **参数说明：**自定义，如test。长度不超过256，只允许中文、字母、数字、以及_?'#().,\&%@!-等字符的组合。                                                                 |
   |---|---|
   | 规则描述   | **参数说明：**自定义，对该规则的描述。                                                                                                                                                                          |
   | 数据来源   | **参数说明：**转发规则的数据来源，下拉可选择多种数据来源。在使用M2M时，请选择"设备消息"。                                                                                                                                              |
   | 触发事件   | **参数说明：**不同的数据来源有不同的触发事件，若使用M2M，请选择"设备消息上报"。                                                                                                                                                   |
   | 资源空间   | **参数说明：** 下拉选择所属的资源空间。可以选择所有资源空间，如无对应的资源空间，请先创建[资源空间](https://support.huaweicloud.com/usermanual-iothub/iot_01_0006.html)。                                                                     |
   | 数据过滤语句 | **参数说明：** 使用SQL语句可以进行数据筛选，详情可见：[SQL语句](https://support.huaweicloud.com/usermanual-iothub/iot_01_0025.html)。图片中在WHERE中填入notify_data.body.topic IN ('/test/M2M')，代表只有Topic为"/test/M2M"的数据进行数据转发。 |
      
   
   
4. 在创建数据转发规则的第二步，可以添加转发到的目标，包括设置转发后的Topic、缓存时间等。若使用M2M，请将转发目标设置为"设备"，按照业务具体填写参数后单击"确定"。 
   图4新建转发目标-转发至设备   
   ![](https://support.huaweicloud.com/usermanual-iothub/figure/zh-cn_image_0000002322442206.png "点击放大")
   表2设置转发目标-参数说明 
   | 转发目标  |                                                                             **参数说明：**下拉选择转发目标，在设备间消息通信中，请选择为"设备"。                                                                              |
   |---|---|
   | Topic | **参数说明：**自定义，长度不超过128个字符，可以以$和/开头，不可以$和/符号结尾；不允许有a-zA-Z0-9() ',-.:=@;_!\*'%?+\\以外的符号；不支持以$oc开头。 如果Topic值设置为"$topic()"，则转发后的Topic和上报数据的Topic一样。 |
   | ttl   | **参数说明：**数据缓存时间。当设备不在线时，数据会进行缓存（当ttl为0时不缓存），当设备上线时再进行下发。输入值范围在0\~1440（一天）分钟，且值为5的倍数。                                                                                                           |
      
   
   
5. 启动规则。在创建数据转发规则的第三步，单击页面中央的"启动规则"，完成规则设置。 
   图5启动规则-转发至设备   
   ![](https://support.huaweicloud.com/usermanual-iothub/figure/zh-cn_image_0000001982225273.png "点击放大")
   
   
