基于规则引擎的M2M设备间通信Node JS SDK 示例

简介: M2M(即Machine-to-Machine)是一种端对端通信技术。本章节以Node JS SDK为例,使用规则引擎数据流转来实现M2M设备间通信,主要介绍如何基于物联网平台构建一个M2M设备间通信架构。

概述

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无法正常监听到消息的情况,可以结合运维监控的日志服务进行排查。

_

参考链接

基于规则引擎的M2M设备间通信
Node JS SDK环境要求与配置

相关文章
|
2月前
|
存储 Java API
【Azure 存储服务】Java Storage SDK 调用 uploadWithResponse 代码示例(询问ChatGTP得代码原型后人力验证)
【Azure 存储服务】Java Storage SDK 调用 uploadWithResponse 代码示例(询问ChatGTP得代码原型后人力验证)
|
23天前
|
前端开发 JavaScript 开发者
Express.js与前端框架的集成:React、Vue和Angular的示例与技巧
本文介绍了如何将简洁灵活的Node.js后端框架Express.js与三大流行前端框架——React、Vue及Angular进行集成,以提升开发效率与代码可维护性。文中提供了详细的示例代码和实用技巧,展示了如何利用Express.js处理路由和静态文件服务,同时在React、Vue和Angular中构建用户界面,帮助开发者快速掌握前后端分离的开发方法,实现高效、灵活的Web应用构建。
37 3
|
3月前
|
缓存 JavaScript API
NodeJS代理配置指南:详细步骤和代码示例
**Node.js 代理配置:解决HTTP请求转发与CORS挑战** 在现代开发环境中,Node.js以其高效和灵活性深受青睐,但正确配置代理以处理跨域请求和API调用仍是复杂任务。本文提供全面指南,从基础到高级设置,教授如何在Node.js中使用代理,覆盖httpOptions、npm代理及第三方库的运用,以增强API调用灵活性。
NodeJS代理配置指南:详细步骤和代码示例
|
2月前
|
前端开发 JavaScript 开发者
前端JS按钮点击事件、跳出弹窗、遮罩的实战示例
本文提供了一个前端JS按钮点击事件、弹出式窗口和遮罩层的实战示例,包括HTML、CSS和JavaScript的具体实现代码,以及功能解析,演示了如何实现按钮点击后触发弹窗显示和遮罩层,并在2秒后自动关闭或点击遮罩层关闭弹窗的效果。
前端JS按钮点击事件、跳出弹窗、遮罩的实战示例
|
2月前
|
JavaScript 前端开发
【Azure Developer】在App Service上放置一个JS页面并引用msal.min.js成功获取AAD用户名示例
【Azure Developer】在App Service上放置一个JS页面并引用msal.min.js成功获取AAD用户名示例
|
2月前
|
Java 开发工具
【Azure Developer】示例: 在中国区调用MSGraph SDK通过User principal name获取到User信息,如Object ID
【Azure Developer】示例: 在中国区调用MSGraph SDK通过User principal name获取到User信息,如Object ID
|
2月前
|
API 开发工具 图形学
影创SDK☀️六、讲讲SDK如何适配不同型号的设备控制器
影创SDK☀️六、讲讲SDK如何适配不同型号的设备控制器
|
2月前
|
JavaScript
js之三级联动示例
js之三级联动示例
40 1
|
2月前
|
JSON Dart 前端开发
分享15 个 JavaScript 代码示例及其 Dart 对应代码。
本文对比了React/React Native中的JavaScript语法与Flutter中的Dart语法,帮助开发者快速上手Flutter。内容涵盖JSON处理、数组操作、类型转换、条件判断等常见功能,如`JSON.stringify`与`JsonEncoder().convert`,`array.push`与`list.add`,`parseInt`与`int.parse`等,并提供了15个JavaScript与Dart代码示例对照。这对于从JavaScript转向Dart的开发者尤其有用。
13 0
|
2月前
|
存储 移动开发 JavaScript
JavaScript简介及示例
JavaScript简介及示例

热门文章

最新文章

下一篇
无影云桌面