【发布时间】:2018-11-16 19:32:06
【问题描述】:
我有一个简单的 nodejs AWS IoT 设备实现。
var awsIot = require('aws-iot-device-sdk');
const device = awsIot.device({
keyPath: 'private.pem.key',
certPath: 'certificate.pem.crt',
caPath: 'CA.pem',
clientId: 'device1',
host: 'xxxxyyyyy1.iot.ap-southeast-1.amazonaws.com'
});
device.on('connect', () => {
console.log('DEVICE connect!');
});
device.on('message', (topic, payload) => {
console.log('DEVICE message!');
});
device.on('close', () => {
console.log('DEVICE closed!');
});
device.on('error', error => {
console.log('DEVICE error!');
console.log(error);
});
device.on('offline', () => {
console.log('DEVICE offline!');
});
如果我执行它的单个实例,该脚本运行良好。 输出:
dev@dev1:~/dev$ node test1.js
DEVICE connect!
但是,如果我同时在两台不同的机器上运行相同的脚本,两台设备都会反复断开连接并重新连接。
dev@dev1:~/dev$ node test1.js
DEVICE connect!
DEVICE offline!
DEVICE closed!
DEVICE connect!
DEVICE offline!
DEVICE closed!
DEVICE connect!
DEVICE offline!
DEVICE closed!
DEVICE connect!
^C
dev@dev1:~/dev$
dev@dev2:~/dev$ node test1.js
DEVICE connect!
DEVICE offline!
DEVICE closed!
DEVICE connect!
DEVICE offline!
DEVICE closed!
DEVICE connect!
DEVICE offline!
DEVICE closed!
DEVICE connect!
^C
dev@dev2:~/dev2$
AWS 安全政策:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "iot:*",
"Resource": "*"
}
]
}
【问题讨论】:
标签: javascript node.js aws-iot