概述
M2M(即Machine-to-Machine)是一种端对端通信技术。本章节以Node JS SDK为例,使用规则引擎数据流转来实现M2M设备间通信,主要介绍如何基于物联网平台构建一个M2M设备间通信架构。
实验步骤
第一部分:配置相关
1、创建产品
2、定义Topic
3、产品下面添加设备1和设备2
4、规制引擎配置
5、启动规则引擎
第二部分:客户端代码相关
6、Node JS 设备端SDK安装
npm install alibabacloud-iot-device-sdk --save
7、设备端业务代码
设备1
// node引入包名
const iot = require('alibabacloud-iot-device-sdk');
// 浏览器、微信小程序,支付宝小程序引入./dist编译的js文件
// const iot = require('./dist/alibabacloud-iot-device-sdk.js');
// js版本下载地址:
// https://github.com/aliyun/alibabacloud-iot-device-sdk/tree/master/dist 或
// alibabacloud-iot-device-sdk.js 下载地址 https://unpkg.com/alibabacloud-iot-device-sdk@1.2.4/dist/alibabacloud-iot-device-sdk.js 或
// alibabacloud-iot-device-sdk.min.js 下载地址 https://unpkg.com/alibabacloud-iot-device-sdk@1.2.4/dist/alibabacloud-iot-device-sdk.min.js
//
const device = iot.device({
productKey: 'a12OcQ4****',
deviceName: 'device1',
deviceSecret: '3yWqKtWxN7VPuWEEDEn4eKWNNtUv****'
// 支付宝小程序和微信小程序额外需要配置协议参数
// "protocol": 'alis://', "protocol": 'wxs://',
});
device.on('connect', () => {
console.log('connect successfully!');
// 发送消息到指定的Topic,等待规则引擎转发到另外的一个设备的Topic
device.publish('/a12OcQ4****/device1/user/m2mdata', '{"ke1":"value1 test"}');
});
设备2
// node引入包名
const iot = require('alibabacloud-iot-device-sdk');
// 浏览器、微信小程序,支付宝小程序引入./dist编译的js文件
// const iot = require('./dist/alibabacloud-iot-device-sdk.js');
// js版本下载地址:
// https://github.com/aliyun/alibabacloud-iot-device-sdk/tree/master/dist 或
// alibabacloud-iot-device-sdk.js 下载地址 https://unpkg.com/alibabacloud-iot-device-sdk@1.2.4/dist/alibabacloud-iot-device-sdk.js 或
// alibabacloud-iot-device-sdk.min.js 下载地址 https://unpkg.com/alibabacloud-iot-device-sdk@1.2.4/dist/alibabacloud-iot-device-sdk.min.js
//
const device = iot.device({
productKey: 'a12OcQ4****',
deviceName: 'device2',
deviceSecret: 'X9fzX9u0aIOORNghPyfYKq22IL7Q****'
// 支付宝小程序和微信小程序额外需要配置协议参数
// "protocol": 'alis://', "protocol": 'wxs://',
});
// 定于规则引擎转发过来的消息
device.subscribe('/a12OcQ4****/device2/user/m2mdata');
device.on('connect', () => {
console.log('connect successfully!');
});
device.on('message', (topic, payload) => {
console.log(topic, payload.toString());
});
8、测试运行
第三部分:问题排查
对于使用过程中设备2无法正常监听到消息的情况,可以结合运维监控的日志服务进行排查。