Я пишу сценарий для получения некоторых данных датчика с помощью MQTT, преобразования входного значения особым образом и передачи его в облако, которое использует зашифрованное соединение.Скрипт работает на RaspberryPi 3 (Raspbian), где Mosquitto работает как MQTT-брокер (датчики отправляют данные этому брокеру)
Пока что я получаю информацию от датчиков и могу преобразовывать контент по своему усмотрению.
Проблема в том, что когда я пытаюсь подключиться к удаленному брокеру, я получаю следующее сообщение об ошибке
Error: error:0906D06C:PEM routines:PEM_read_bio:no start line
at Error (native)
at Object.createSecureContext (_tls_common.js:67:17)
at Object.TLSSocket._init.ssl.onclienthello.ssl.oncertcb.exports.connect (_tls_wrap.js:1015:46)
at Object.buildBuilder (/home/pi/node_modules/mqtt/lib/connect/tls.js:13:20)
at MqttClient.wrapper [as streamBuilder] (/home/pi/node_modules/mqtt/lib/connect/index.js:135:36)
at MqttClient._setupStream (/home/pi/node_modules/mqtt/lib/client.js:246:22)
at new MqttClient (/home/pi/node_modules/mqtt/lib/client.js:227:8)
at Object.connect (/home/pi/node_modules/mqtt/lib/connect/index.js:138:10)
at Object.<anonymous> (/home/pi/GATT_server/MQTT_module.js:3:25)
Я попытался настроить Mosquitto как MQTT-мост для использования конфигурации.файл, и похоже, что он будет работать (при перезапуске службы нет сообщений об ошибках).
Проблема, когда я использую Mosquitto в качестве моста, скрипт не может подписаться на темы, опубликованные датчиками.
Я не знаком с этими сертификатами, но прочитав документацию по файлу client-options.cs, я написал следующие строки:
var mqtt = require('mqtt')
var client = mqtt.connect('mqtt://localhost', 'port:1883');
var remoteBroker = mqtt.connect('mqtts://xxx.xxx.io',
{port:8883,
protocol:'ssl',
username:'username',
password:'123password123',
cert:'/etc/mosquitto/certs/ca.pem'} );
/*....
.... many lines later
....*/
remoteBroker.publish(topicToUseOnRemoteMqttBroker, PayloadToForward);
Я правильно делаю?Или я что-то пропустил?
Если сертификат для Mosquitto-Bridge в порядке, то и для удаленного брокера тоже будет в порядке.- Это правильно?
Если у вас есть дополнительные ссылки / статьи по этой теме - мне нравится изучать; P Google дал мне так много информации - я не знаю, с чего начать: (