#javascript #node.js #amazon-web-services #iot #aws-iot
#javascript #node.js #amazon-веб-сервисы #iot #aws-iot
Вопрос:
Я пытаюсь использовать NodeJS для подключения моего Raspberry Pi к AWS IoT и отправки некоторого сообщения MQTT. Я использую aws-iot-device-sdk
библиотеку, и это на самом деле мой тестовый код
var awsIot = require('aws-iot-device-sdk');
var device = awsIot.device({
keyPath: '../certs/*******-private.pem.key',
certPath: '../certs/*******-certificate.pem.crt',
caPath: '../certs/root-ca-certification.pem',
clientId: 'provola',
host: '*******-ats.iot.us-east-1.amazonaws.com',
});
device.on('connect', function () {
console.log('connect');
device.subscribe('topic_1');
device.publish('topic_2', JSON.stringify({ test_data: 1 }));
});
device.on('message', function (topic, payload) {
console.log('message', topic, payload.toString());
});
Но когда я его запускаю, единственное, что я получаю, это сообщение connect
, которое печатается непрерывно.
Я попытался запустить тот же код даже на своем ноутбуке, но я получаю тот же результат.
Более того, я хотел бы знать, где получить сертификат CA для caPath
параметра, потому что на самом деле я не знаю, правильно ли это.
Комментарии:
1. Как итальянцу, мне очень нравится идентификатор клиента: D Кстати, прослушивайте события «offline» и «error» на устройстве, оно, вероятно, продолжает отключаться, а затем снова подключается
2. Ахахах, спасибо, я забыл изменить его перед публикацией XD В любом случае, я последую вашему предложению и дам вам знать, спасибо!
3. Хорошо, я попытался
console.log
что-то сделать вdevice.on('error')
и, поэтому я получаю непрерывное переключение междуdevice.on('connect')
иdevice.on('error')
. Что может быть причиной?4. Хорошо, я понял, в чем проблема. В моем документе политики я установил
"action": "iot:Connect"
вместо"iot:*"
. Изменив его, теперь я могу публиковать темы и подписываться на них.