文章目录

  • 添加文件至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. 微信小程序连接阿里云物联网平台——物联网远程控制开发1

    博主在尝试使用微信小程序与阿里云物联网平台的topic通信,但有些资源说的不够详细,容易搞懵小白,因此补充一些. 内容框架参考: [物联网]微信小程序接入阿里云物联网平台 微信小程序连接阿里云物联网平 ...

  2. 微信小程序连接阿里云物联网平台操控设备(IOT)一

    文章导航: 微信小程序连接阿里云物联网平台操控设备(IOT)一 设备上云 微信小程序连接阿里云物联网平台操控设备(IOT)二 微信小程序开发(一) 微信小程序连接阿里云物联网平台操控设备(IOT)三 ...

  3. 微信小程序连接阿里云物联网平台操控设备(IOT)三

    文章导航: 微信小程序连接阿里云物联网平台操控设备(IOT)一 设备上云 微信小程序连接阿里云物联网平台操控设备(IOT)二 微信小程序开发(一) 微信小程序连接阿里云物联网平台操控设备(IOT)三 ...

  4. 微信小程序连接阿里云物联网平台操控设备(IOT)二

    文章导航: 微信小程序连接阿里云物联网平台操控设备(IOT)一 设备上云 微信小程序连接阿里云物联网平台操控设备(IOT)二 微信小程序开发(一) 微信小程序连接阿里云物联网平台操控设备(IOT)三 ...

  5. 微信小程序连接阿里云物联网平台 - MQTT协议题

    参考文章:[物联网]微信小程序接入阿里云物联网平台_mxj1428295019的博客-CSDN博客_微信小程序 阿里云物联网 在参考文章中下载源码,然后在微信小程序开发者工具中打开,并且修改下图中这些 ...

  6. esp8266驱动_【直播视频】微信小程序连接阿里云物联网控制esp8266实现rgb调节。...

    前天晚上感谢各位小伙伴的捧场直播:我今年下半年立志会出一档实战视频<微信和支付宝小程序如何控制esp8266>,会第一时间通知大家! 昨晚在遇到一些小问题,耽误了一个小时,开始直播时候喉咙 ...

  7. 微信小程序 阿里云服务器 非物联网平台自建MQTT代理服务器控制树莓派LED

    微信小程序 阿里云服务器 非物联网平台自建MQTT代理服务器控制树莓派LED 本人大三,临近毕业季,日后希望从事物联网和嵌入式相关工作,所以自己构想了一个项目来练手,之前做大创的时候学了一点微信小程序 ...

  8. 微信小程序+阿里云+stm32f407的一个项目

    ** 微信小程序+阿里云+stm32f407的一个项目## 小程序参考了大神半颗心脏的博客和资料, 小程序多个页面推送数据 因为自己做小程序是类似商城的一个demo, 其中数据需要与单片机进行交互,而 ...

  9. 最详细的【微信小程序+阿里云Web服务】开发部署指引(十一):开发小程序设置功能

    文章目录 前言 一.功能说明 二.设置界面代码实现 1.创建界面Page 2.WXML 3.JS 4.WXSS 三.参数控制逻辑代码实现 1.自动跳转卡片 2.自动播放声音 专题文章链接 前言 案例的 ...

最新文章

  1. 敲代码、作诗、写论文无所不能!史上最大AI模型GPT-3强势霸榜Github
  2. 计算机 配置不过4000,台式机4000元以上免谈,非主流配置免谈
  3. 动态性是Java的特性吗_Java的动态特性有哪些?
  4. 清华大学计算机系男女,【清华大学男女比例】2016清华大学各院系男女比例
  5. linux中不同版本的gcc切换,Ubuntu 14.04中升级gcc到版本4.9.2并切换使用它们
  6. python接口自动化(十)--post请求四种传送正文方式(详解)
  7. 风好大,我好冷——个人分工理解
  8. javaScript 中创建json/转换字符串为json
  9. python tkinter 窗口位置_Python tkinter调整元件在窗口中的位置与几何布局管理
  10. Linux网络socket网络抓包工具
  11. 弗兰克赫兹实验matlab画图,物理实验论文
  12. 初探华尔街期权量化交易的奥秘
  13. 抖音培训教程,抖音培训班,抖音培训课程(2019实时更新中) -
  14. 达索系统基于3DEXPERIENCE平台开发工具介绍
  15. 抖音二面:计算机网络-应用层
  16. 享学独立站:Logo设计理念
  17. 控制过滤器Filter执行顺序
  18. ***.jar!\BOOT-INF\classes!\***.xml没有此文件
  19. jquery 的柱状图,饼状图如何显示
  20. 美团前端二面必会面试题(附答案)

热门文章

  1. python的concat用法_Pandas串联操作concat()用法介绍
  2. python编译exe文件太大了_python编译windows下可执行的exe文件
  3. 成功解决type object ‘h5py.h5.H5PYConfig‘ has no attribute ‘__reduce_cython__‘
  4. Algorithm:机械优化设计的数学模型简介、常用优化方法、优化计算工具简介之详细攻略
  5. 成功解决Lib\sre_compile.py, line 17, in module assert _sre.MAGICMAGIC SRE module mismatch
  6. Matlab中解决出现的错误使用 svmtrain (line 234) Y must be a vector or a character array.问题
  7. Dataset之MNIST:MNIST(手写数字图片识别+ubyte.gz文件)数据集简介、下载、使用方法(包括数据增强)之详细攻略
  8. Pandas matplotlib 无法显示中文 Ubuntu16.04
  9. eclipse 出现 jar包找不到 问题记录
  10. UISegmentedControl swift