日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

基于Topic消息路由的M2M设备间通信Node JS SDK 示例

發布時間:2024/8/23 javascript 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于Topic消息路由的M2M设备间通信Node JS SDK 示例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

概述

M2M(即Machine-to-Machine)是一種端對端通信技術。本章節以Node JS SDK為例,使用基于Topic消息路由的M2M設備間通信,主要介紹如何基于物聯網平臺構建一個M2M設備間通信架構。

實驗步驟


第一部分:配置相關

1、產品、設備、Topic的創建參考鏈接

消息路由建立

本部分目前不支持門戶直接配置,需要基于管理API:?CreateTopicRouteTable?來建立消息路由關系。

測試可以直接使用OpenAPI來快速實現相關功能,本地集成相關功能直接基于SDK即可。

2、JAVA SDK Demo

import com.aliyuncs.DefaultAcsClient; import com.aliyuncs.IAcsClient; import com.aliyuncs.exceptions.ClientException; import com.aliyuncs.exceptions.ServerException; import com.aliyuncs.iot.model.v20170420.CreateTopicRouteTableRequest; import com.aliyuncs.iot.model.v20170420.CreateTopicRouteTableResponse; import com.aliyuncs.profile.DefaultProfile; import com.google.gson.Gson; import java.util.*;public class CreateTopicRouteTable {public static void main(String[] args) {DefaultProfile profile = DefaultProfile.getProfile("cn-shanghai", "LTAIOZZg********", "v7CjUJCMk7j9aKduMAQLjy********");IAcsClient client = new DefaultAcsClient(profile);CreateTopicRouteTableRequest request = new CreateTopicRouteTableRequest();request.setRegionId("cn-shanghai");List<String> dstTopicList = new ArrayList<String>();dstTopicList.add("/a12OcQ4****/device2/user/RouteData");request.setDstTopics(dstTopicList);request.setSrcTopic("/a12OcQ4****/device1/user/RouteData");try {CreateTopicRouteTableResponse response = client.getAcsResponse(request);System.out.println(new Gson().toJson(response));} catch (ServerException e) {e.printStackTrace();} catch (ClientException e) {System.out.println("ErrCode:" + e.getErrCode());System.out.println("ErrMsg:" + e.getErrMsg());System.out.println("RequestId:" + e.getRequestId());}} }

注意:SDK版本差異按照實際版本調整即可。

3、查詢路由關系

import com.aliyuncs.DefaultAcsClient; import com.aliyuncs.IAcsClient; import com.aliyuncs.exceptions.ClientException; import com.aliyuncs.exceptions.ServerException; import com.aliyuncs.iot.model.v20170420.QueryTopicRouteTableRequest; import com.aliyuncs.iot.model.v20170420.QueryTopicRouteTableResponse; import com.aliyuncs.profile.DefaultProfile; import com.google.gson.Gson;public class QueryTopicRouteTable {public static void main(String[] args) {DefaultProfile profile = DefaultProfile.getProfile("cn-shanghai", "LTAIOZZgY********", "v7CjUJCMk7j9aKduMAQLjy********");IAcsClient client = new DefaultAcsClient(profile);QueryTopicRouteTableRequest request = new QueryTopicRouteTableRequest();request.setRegionId("cn-shanghai");request.setTopic("/a12OcQ4****/device1/user/RouteData");try {QueryTopicRouteTableResponse response = client.getAcsResponse(request);System.out.println(new Gson().toJson(response));} catch (ServerException e) {e.printStackTrace();} catch (ClientException e) {System.out.println("ErrCode:" + e.getErrCode());System.out.println("ErrMsg:" + e.getErrMsg());System.out.println("RequestId:" + e.getRequestId());}} }

運行結果

{"requestId":"9404FD71-7461-478E-B064-0AEB15C91111","success":true,"dstTopics":["/a12OcQ4****/device2/user/RouteData"]}

第二部分:客戶端代碼相關

4、Node JS SDK安裝參考鏈接

5、設備端業務代碼

device1

// 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: '3yWqKtWxN7VPuWEEDEn4eKWN********'// 支付寶小程序和微信小程序額外需要配置協議參數// "protocol": 'alis://', "protocol": 'wxs://', }); device.on('connect', () => {console.log('connect successfully!');// 發送消息到指定的Topic,等待規則引擎轉發到另外的一個設備的Topicdevice.publish('/a12OcQ4****/device1/user/RouteData', '{"ke1":"value1 test"}');device.publish('/a12OcQ4****/device1/user/RouteData', 'This is my test job.'); });

device2

// 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: 'X9fzX9u0aIOORNghPyfYKq22********'// 支付寶小程序和微信小程序額外需要配置協議參數// "protocol": 'alis://', "protocol": 'wxs://', }); // 定于規則引擎轉發過來的消息 device.subscribe('/a12OcQ4****/device2/user/RouteData'); device.on('connect', () => {console.log('connect successfully!'); }); device.on('message', (topic, payload) => {console.log(topic, payload.toString()); });

8、測試運行


原文鏈接
本文為云棲社區原創內容,未經允許不得轉載。

總結

以上是生活随笔為你收集整理的基于Topic消息路由的M2M设备间通信Node JS SDK 示例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。