微信小程序连接阿里云物联网
文章目录
- 添加文件至utils目录
- 把下面代码粘贴至需要通信的页面的JS中
- 举例:我放在goExpress.js下
- 改动
- 改动1
- 改动2
- 测试
- 发送给阿里云端消息:
添加文件至utils目录
一个是mqtt.min.js
,另一个是hex_hmac_sha1.js
,这两个文件的话,我已上传资源,下载即可,或者直接私我,我发邮箱,或者上github,上面也有
把下面代码粘贴至需要通信的页面的JS中
举例:我放在goExpress.js下
var mqtt = require('../../utils/mqtt.min.js') //根据自己存放的路径修改
const crypto = require('../../utils/hex_hmac_sha1.js'); //根据自己存放的路径修改
Page({data: {},onLoad: function () {//注意:这里在程序运行后会直接进行连接,如果你要真机调试,记得关掉模拟器或者使用一个按钮来控制连接,以避免模拟器和真机同时进行连接导致两边都频繁断线重连!this.doConnect()},doConnect(){const deviceConfig = {productKey: "替换",deviceName: "替换",deviceSecret: "替换",regionId: "cn-shanghai"//根据自己的区域替换};const options = this.initMqttOptions(deviceConfig);console.log(options)//替换productKey为你自己的产品的(注意这里是wxs,不是wss,否则你可能会碰到ws不是构造函数的错误)const client = mqtt.connect('wxs://productKey.iot-as-mqtt.cn-shanghai.aliyuncs.com',options)client.on('connect', function () {console.log('连接服务器成功')//注意:订阅主题,替换productKey和deviceName(这里的主题可能会不一样,具体请查看控制台-产品详情-Topic 类列表下的可订阅主题),并且确保改主题的权限设置为可订阅client.subscribe('/productKey/deviceName/user/get', function (err) {if (!err) {console.log('订阅成功!');}})})//接收消息监听client.on('message', function (topic, message) {// message is Bufferlet msg = message.toString();console.log('收到消息:'+msg);//关闭连接 client.end()})},//IoT平台mqtt连接参数初始化initMqttOptions(deviceConfig) {const params = {productKey: deviceConfig.productKey,deviceName: deviceConfig.deviceName,timestamp: Date.now(),clientId: Math.random().toString(36).substr(2),}//CONNECT参数const options = {keepalive: 60, //60sclean: true, //cleanSession不保持持久会话protocolVersion: 4 //MQTT v3.1.1}//1.生成clientId,username,passwordoptions.password = this.signHmacSha1(params, deviceConfig.deviceSecret);options.clientId = `${params.clientId}|securemode=2,signmethod=hmacsha1,timestamp=${params.timestamp}|`;options.username = `${params.deviceName}&${params.productKey}`;return options;},/*生成基于HmacSha1的password参考文档:https://help.aliyun.com/document_detail/73742.html?#h2-url-1
*/signHmacSha1(params, deviceSecret) {let keys = Object.keys(params).sort();// 按字典序排序keys = keys.sort();const list = [];keys.map((key) => {list.push(`${key}${params[key]}`);});const contentStr = list.join('');return crypto.hex_hmac_sha1(deviceSecret, contentStr);}
})
改动
改动1
把三元组:ProductKey,DeviceName,DeviceSecret
内容和regionId填好
改动2
/productKey/deviceName/user/get
这个东西,需要根据自身的物联网平台中的设备Topic来进行更换,
我这里用一个操作权限是发布和订阅来进行更换,即/a1d2nqlFkQ8/n5o8r6WCEHE8ZuFqIaEP/user/topic
测试
发送给阿里云端消息:
client.publish('/a1d2nqlFkQ8/n5o8r6WCEHE8ZuFqIaEP/user/topic','hello mqtt')
然后查看日志,收到
微信小程序连接阿里云物联网相关推荐
- 微信小程序连接阿里云物联网平台——物联网远程控制开发1
博主在尝试使用微信小程序与阿里云物联网平台的topic通信,但有些资源说的不够详细,容易搞懵小白,因此补充一些. 内容框架参考: [物联网]微信小程序接入阿里云物联网平台 微信小程序连接阿里云物联网平 ...
- 微信小程序连接阿里云物联网平台操控设备(IOT)一
文章导航: 微信小程序连接阿里云物联网平台操控设备(IOT)一 设备上云 微信小程序连接阿里云物联网平台操控设备(IOT)二 微信小程序开发(一) 微信小程序连接阿里云物联网平台操控设备(IOT)三 ...
- 微信小程序连接阿里云物联网平台操控设备(IOT)三
文章导航: 微信小程序连接阿里云物联网平台操控设备(IOT)一 设备上云 微信小程序连接阿里云物联网平台操控设备(IOT)二 微信小程序开发(一) 微信小程序连接阿里云物联网平台操控设备(IOT)三 ...
- 微信小程序连接阿里云物联网平台操控设备(IOT)二
文章导航: 微信小程序连接阿里云物联网平台操控设备(IOT)一 设备上云 微信小程序连接阿里云物联网平台操控设备(IOT)二 微信小程序开发(一) 微信小程序连接阿里云物联网平台操控设备(IOT)三 ...
- 微信小程序连接阿里云物联网平台 - MQTT协议题
参考文章:[物联网]微信小程序接入阿里云物联网平台_mxj1428295019的博客-CSDN博客_微信小程序 阿里云物联网 在参考文章中下载源码,然后在微信小程序开发者工具中打开,并且修改下图中这些 ...
- esp8266驱动_【直播视频】微信小程序连接阿里云物联网控制esp8266实现rgb调节。...
前天晚上感谢各位小伙伴的捧场直播:我今年下半年立志会出一档实战视频<微信和支付宝小程序如何控制esp8266>,会第一时间通知大家! 昨晚在遇到一些小问题,耽误了一个小时,开始直播时候喉咙 ...
- 微信小程序 阿里云服务器 非物联网平台自建MQTT代理服务器控制树莓派LED
微信小程序 阿里云服务器 非物联网平台自建MQTT代理服务器控制树莓派LED 本人大三,临近毕业季,日后希望从事物联网和嵌入式相关工作,所以自己构想了一个项目来练手,之前做大创的时候学了一点微信小程序 ...
- 微信小程序+阿里云+stm32f407的一个项目
** 微信小程序+阿里云+stm32f407的一个项目## 小程序参考了大神半颗心脏的博客和资料, 小程序多个页面推送数据 因为自己做小程序是类似商城的一个demo, 其中数据需要与单片机进行交互,而 ...
- 最详细的【微信小程序+阿里云Web服务】开发部署指引(十一):开发小程序设置功能
文章目录 前言 一.功能说明 二.设置界面代码实现 1.创建界面Page 2.WXML 3.JS 4.WXSS 三.参数控制逻辑代码实现 1.自动跳转卡片 2.自动播放声音 专题文章链接 前言 案例的 ...
最新文章
- 敲代码、作诗、写论文无所不能!史上最大AI模型GPT-3强势霸榜Github
- 计算机 配置不过4000,台式机4000元以上免谈,非主流配置免谈
- 动态性是Java的特性吗_Java的动态特性有哪些?
- 清华大学计算机系男女,【清华大学男女比例】2016清华大学各院系男女比例
- linux中不同版本的gcc切换,Ubuntu 14.04中升级gcc到版本4.9.2并切换使用它们
- python接口自动化(十)--post请求四种传送正文方式(详解)
- 风好大,我好冷——个人分工理解
- javaScript 中创建json/转换字符串为json
- python tkinter 窗口位置_Python tkinter调整元件在窗口中的位置与几何布局管理
- Linux网络socket网络抓包工具
- 弗兰克赫兹实验matlab画图,物理实验论文
- 初探华尔街期权量化交易的奥秘
- 抖音培训教程,抖音培训班,抖音培训课程(2019实时更新中) -
- 达索系统基于3DEXPERIENCE平台开发工具介绍
- 抖音二面:计算机网络-应用层
- 享学独立站:Logo设计理念
- 控制过滤器Filter执行顺序
- ***.jar!\BOOT-INF\classes!\***.xml没有此文件
- jquery 的柱状图,饼状图如何显示
- 美团前端二面必会面试题(附答案)
热门文章
- python的concat用法_Pandas串联操作concat()用法介绍
- python编译exe文件太大了_python编译windows下可执行的exe文件
- 成功解决type object ‘h5py.h5.H5PYConfig‘ has no attribute ‘__reduce_cython__‘
- Algorithm:机械优化设计的数学模型简介、常用优化方法、优化计算工具简介之详细攻略
- 成功解决Lib\sre_compile.py, line 17, in module assert _sre.MAGICMAGIC SRE module mismatch
- Matlab中解决出现的错误使用 svmtrain (line 234) Y must be a vector or a character array.问题
- Dataset之MNIST:MNIST(手写数字图片识别+ubyte.gz文件)数据集简介、下载、使用方法(包括数据增强)之详细攻略
- Pandas matplotlib 无法显示中文 Ubuntu16.04
- eclipse 出现 jar包找不到 问题记录
- UISegmentedControl swift