Похоже, что IBM недавно перестала принимать не TLS-соединения с MQTT-борщиком по соображениям безопасности.
Мне нравится небольшое приложение, которое считывает данные датчика акселерометра со смартфона с помощью JavaScript и отправляет их брокеру сообщений через MQTT.
Это приложение не работает. Поэтому я пытаюсь исправить это в этой вилке.
Как уже упоминалось, соединения без TLS отклоняются, поэтому я включил TLS:
window.client.connect({
onSuccess: onConnectSuccess,
onFailure: onConnectFailure,
userName: "use-token-auth",
password: window.password,
useSSL: true
});
Он по-прежнему не подключается. На платформе IBM Watson IoT я вижу в журнале эту ошибку, больше ничего:
Закрытое соединение с 213.55.176.207. Операция не авторизована.
Теперь я создал небольшой тестовый файл index.html. Если я подключаюсь как устройство, оно все равно не работает, но если я подключаюсь как приложение, оно работает, как видно на здесь. Но я создал устройства на платформе. И если я использую старый экземпляр Watson IoT Platform, он работает, а с новыми - нет.
Что я делаю неправильно?