Создайте соединение из Eclipse-ditto с концентратором IoT Azure с помощью MQTT

Я пытаюсь создать исходящее соединение из Ditto в концентратор IoT Azure с помощью MQTT. Мы отвечаем за Ditto, в то время как кто-то другой (интересующийся цифровыми двойными данными Live) отвечает за Azure IoT Hub. При подключении к концентратору IoT Azure (в микросервисе подключения) появляется следующая ошибка: Not authorized to connect (5), мы также попытались соединиться с mosquitto_pub и получили ту же ошибку, когда опускали -i client-id вариант. Все остальное кажется в порядке.

Некоторая дополнительная информация:

  • Это команда mosquitto_pub, которая в настоящее время работает:
    mosquitto_pub -h [hostname] -p [port] -t [topic] -m "" -u [username] -P [password] --cafile cert.cer -i [deviceName]
  • Нам были предоставлены имя хоста, порт, тема, имя пользователя (это длинная строка, содержащая разделы, тире и операторы равенства), пароль (который также является длинной строкой, содержащей пробелы, знаки процента и операторы равенства) и файл сертификата. Я URL-адрес закодировал имя пользователя и пароль и соединил их вместе в соединительном URL, как описано на странице того же сайта ( https://www.eclipse.org/ditto/connectivity-protocol-bindings-mqtt.html): ssl: // [URL-кодированной-имя пользователя]:[URL-кодированной-пароль]@[имя хоста]:[номер-порта].
  • Я добавил сертификат и больше не получаю ошибку сертификата ("не удается найти действительный путь сертификации к запрошенной цели").

У кого-нибудь есть опыт с этим?
Может быть, решение использует другой протокол (например, amqp)?
Надеюсь, я не пропустил другие актуальные вопросы или информацию в Интернете. Если так, пожалуйста, покажи мне, где я могу это найти.

Спасибо

1 ответ

Решение

То же самое добавляет "-publisher" к идентификатору исходящего соединения.
Однако Azure IoT Hub ожидает, что идентификатор соединения будет таким же, как устройство, настроенное в Azure IoT Hub. Чтобы заставить его работать на устройстве / соединении, называемом "тест", вы должны сделать следующее:

  • Создайте новое входящее соединение в концентраторе IoT Azure с именем "test-publisher"
  • Создайте то же самое исходящее соединение с:
    • ID: "тест"
    • Сведения о подключении, предоставляемые Azure IoT Hub, включая "test-publisher"
Другие вопросы по тегам