Подключение клиента NodeJS к Интернету вещей вещей через MQTT

#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:*" . Изменив его, теперь я могу публиковать темы и подписываться на них.