1、AWS IoT
AWS IoT是亚马逊一款托管的云平台,使互联设备可以轻松安全地与云应用程序及其他设备交互。
详细参考:https://www.cnblogs.com/lovegrace/p/10982399.html
2、MQTT
mqtt是一种基于发布/订阅范式的消息协议,详细参考:https://www.runoob.com/w3cnote/mqtt-intro.html
3、AWS IoT设备注册步骤
3.1进入iot控制台,创建物品ting,下一步点击一键创建证书
点击激活,下载证书文件后,点击完成
3.2创建策略并绑定证书
点击高级模式,填入以下规则
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "iot:Publish", "iot:Subscribe", "iot:Connect", "iot:Receive" ], "Effect": "Allow", "Resource": [ "*" ] } ] }点击证书,附加策略
3.3测试模拟
本地安装nodejs环境,并且安装device-sdk模块 https://github.com/aws/aws-iot-device-sdk-js
device.js代码:
var awsIot = require('aws-iot-device-sdk'); var device = awsIot.device({ keyPath: `xxx-private.pem.key`,//之前下载的证书 caPath: 'root-CA.crt',//https://www.amazontrust.com/repository/AmazonRootCA1.pem certPath: `xxx-certificate.pem.crt`,//之前下载的证书 clientId: `arn:aws:iot:xxxx:thing/xxxx`,//在aws iot后台查看 host: `xx-ats.iot.us-xxx-1.amazonaws.com`//在测试页面右端查看终端节点 }); device.on('connect', function(err) { console.log('connect'); console.log('subscribe topic:server') device.subscribe('server'); }); device.on('message', function(topic, payload) { console.log(topic, Buffer.from(payload, 'base64').toString()); console.log('publish topic:device'); device.publish('device', '{"message":"device say hello to server"}'); });AWS IoT界面打开测试页面
本地执行device.js
同时在测试界面发布publish server,可以得到如下信息
3.4流程分析
device.js中订阅了server字段的topic消息,aws MQTT客户端订阅了device的消息。当MQTT客户端发布了server的topic的消息,device端会收到,并且发布device的topic的消息,MQTT客户端会订阅到device的消息。