连接方法:先HTTPS认证再连接
/*
*阿里云物联网套件nodejs连接示例
*Created by 薛将军 on 2018/1/8.
*/ var mqtt = require('mqtt'); //mqtt
var request = require('request'); //request用于https认证
var crypto = require('crypto'); //加密模块 var productKey = '物联网套件key'; //产品key
var deviceName = '物联网套件设备名称'; //设备名称
var clientId = Math.random().toString(16).substr(2, 8); //自id
var deviceSecret = '物联网套件设备密码'; //设备密码
var host = `mqtt://${productKey}.iot-as-mqtt.cn-shanghai.aliyuncs.com:1883`; //阿里mqtt host var content = {
productKey: productKey,
deviceName: deviceName,
clientId: clientId
} //字典排序
function sign_hmac(ct) {
var secretString = '';
for (let key of Object.keys(ct).sort()) {
secretString += key + content[key];
}
return secretString;
}
//加密 crypto.createHmac('sha1', deviceSecret).update('待加密字串').digest('hex');
var sign = crypto.createHmac('sha1', deviceSecret).update(sign_hmac(content)).digest('hex'); var url = 'https://iot-auth.cn-shanghai.aliyuncs.com/auth/devicename' var requestForm = {
productKey: productKey,
deviceName: deviceName,
sign: sign,
clientId: clientId,
signmethod: 'hmacsha1'
} var params = {
url: url,
form: requestForm
} //HTTPS认证
request.post(params, function(error, response, body) {
if (error) {
console.log(error)
}
if (!error && response.statusCode == 200) {
var res = JSON.parse(body) var options = {
clientId: clientId,
username: res.data.iotId,
password: res.data.iotToken, } var client = mqtt.connect(host, options);
client.on('connect', function() {
console.log('MQTT服务器链接成功!')
client.subscribe(`/${productKey}/${deviceName}/send_push`)
}) client.on('error', function(err) {
console.log(err)
}) //topic
client.on('message', function(topic, message) {
// message is Buffer
console.log('收到:' + topic + '消息:' + message.toString())
client.end() //结束连接
})
}
})

nodejs连接阿里云物联网套件(mqtt)的更多相关文章

  1. 【物联网云端对接-2】通过MQTT协议与阿里云物联网套件进行云端通信

     在<程序员>杂志2017.4刊上,曾写过一篇<微软百度阿里三大物联网平台探析>,上面曾介绍了阿里云物联网套件的一些内容,在写该篇文章的时候,凌霄物联网网关还无法对接到此平台( ...

  2. 阿里云物联网套件(iot)设备间通信(M2M)在web端的实践

    之前通过nodejs连接到阿里云物联网mqtt,后又用浏览器连接,总结一下: 由于项目是SPA,使用webpack,关键代码: 同样使用mqtt.js之前先install: npm install - ...

  3. 阿里云物联网 .NET Core 客户端 | CZGL.AliIoTClient:1. 连接阿里云物联网

    文档目录: 说明 1. 连接阿里云物联网 2. IoT 客户端 3. 订阅Topic与响应Topic 4. 设备上报属性 4.1 上报位置信息 5. 设置设备属性 6. 设备事件上报 7. 服务调用 ...

  4. 阿里云物联网平台: Android 连接阿里云物联网平台

    说明 这节是是为下一节做铺垫的 只要是按照我提供的学习路线一节一节的认认真真学过来的,这节就十分的简单 有了前两节的基础,这节呢咱让Android 连接阿里云物联网平台 使用这节的代码  https: ...

  5. ESA2GJK1DH1K基础篇: 阿里云物联网平台: 测试MQTT连接阿里云物联网平台

    前言 这节看一下在阿里云上实现MQTT通信是个怎样的流程 看了很多网上的教程,感觉讲的迷迷糊糊.... 其实感觉他们是对MQTT不够透彻,所以写的文章就是个比着葫芦画瓢的感觉 在我面前这东西就是玩具. ...

  6. mqtt网关服务器连接阿里云关联物模型

    mqtt网关服务器连接阿里云关联物模型 卓岚专门为工业环境设计的RS485设备数据采集器/物联网网关,兼具串口服务器.Modbus网关.MQTT网关.RS485转JSON等多种功能于一体. 可以连接阿 ...

  7. django 通过MQTT连接阿里云

    Django MQTT 连接阿里云 目录 Django MQTT 连接阿里云 目录 一.安装库 1.安装Python对接mqtt协议库,paho-mqtt 二. 设备认证,一机一密型接入 三.问题 1 ...

  8. 阿里云物联网 .NET Core 客户端 | CZGL.AliIoTClient:2. IoT 客户端

    文档目录: 说明 1. 连接阿里云物联网 2. IoT 客户端 3. 订阅Topic与响应Topic 4. 设备上报属性 4.1 上报位置信息 5. 设置设备属性 6. 设备事件上报 7. 服务调用 ...

  9. 阿里云物联网 .NET Core 客户端 | CZGL.AliIoTClient:3. 订阅Topic与响应Topic

    文档目录: 说明 1. 连接阿里云物联网 2. IoT 客户端 3. 订阅Topic与响应Topic 4. 设备上报属性 4.1 上报位置信息 5. 设置设备属性 6. 设备事件上报 7. 服务调用 ...

随机推荐

  1. Mysql生产指定时间段随机日期函数

    UPDATE basicsale_b2b2c.basic_customer SET registerDate = ( from_unixtime( unix_timestamp('2017-01-01 ...

  2. 苹果手机的SB系列(3)超级烦人的账户解锁?

    不知道大家有没有这种体验,Iphone 每隔一段时间后账户就被锁定了,也不告诉你原因,就是要解锁? 我怎么感觉比做的比支付宝差多了,我注册支付宝十几年,也没有动不动就告诉了有安全原因,要解锁,要重置密 ...

  3. C# json转model 以及model转json

    1.json转model TestModel tm = new TestModel(); JavaScriptSerializer js = new JavaScriptSerializer();tm ...

  4. fastjson对象转为json字符串日期格式变为时间戳问题

    今天尝试将map集合转为json对象时遇到一个问题.map中的value为日期格式如"2019-03-01",在使用JSONObject.toJSON(map).toString( ...

  5. 使用layer的弹窗时,出现layer引入成功,触发成功,控制台无报错,但是页面无变化或者仅出现遮罩层的问题的解决思路

    ------------------------------------------20180410补充------------------------------------------------ ...

  6. django自定义模板标签

    # 创建自定义模板标签目录 django_project_name app_name templatetags (创建Python Packge,注意一定要用templatetags这个名字) my_ ...

  7. GIT 生成公钥

    ssh-keygen -t rsa -C "xxxxx@xxxxx.com" cat ~/.ssh/id_rsa.pub

  8. flask 第六章 人工智能 百度语音合成 识别 NLP自然语言处理+simnet短文本相似度 图灵机器人

    百度智能云文档链接 : https://cloud.baidu.com/doc/SPEECH/index.html 1.百度语音合成 概念: 顾名思义,就是将你输入的文字合成语音,例如: from a ...

  9. IoT experitment

    Abstract: In order to solve the problems of complex experiment management, complicated teaching task ...

  10. JS 清除DOM 中空白元素节点

    HTML中的空白节点会影响整体的HTML的版面排榜 例如: 制作百度首页时,两个input之间的空白节点将本来是要整合在一起的搜索栏硬是把按钮和搜索框分离出现好丑的间隙 这时我们就可以用js清除这个空 ...