У меня есть интерфейс в JS, который подключается к серверу MQTT (mosquitto
) с помощью Клиент Paho JavaScript. Это нормально работает, я могу публиковать и слушать темы.
Теперь я хотел бы сделать подключение через веб-сокеты защищенным.
К этому я добавил в свой /etc/mosquitto/mosquitto.conf
записи для certfile
и keyfile
:
pid_file /var/run/mosquitto.pid
persistence true
persistence_location /var/lib/mosquitto/
log_dest file /var/log/mosquitto/mosquitto.log
include_dir /etc/mosquitto/conf.d
listener 1883
listener 1884
protocol websockets
# above is the working, non-wss configuration
certfile /etc/mosquitto/wildcard.crt
keyfile /etc/mosquitto/wildcard.key
При условии, что это правильная конфигурация, как я могу создать клиента на JS, который будет учитывать безопасное соединение? Для существующей у меня
client = new Paho.MQTT.Client("10.10.10.10", 1884, Math.random().toString(16).substring(7))
и не видите здесь никакой другой конфигурации?
От документы
У вас есть несколько вариантов:
host
при объявлении нового клиента может быть URI, а не просто ip / hostname
client = new Paho.MQTT.Client("wss://10.10.10.10:1884", Math.random().toString(16).substring(7));
Вы можете использовать флаг useSSL
в объекте опций client.connect(options)
.
client.connect({
useSSL: true
});
Тогда это ошибка, вы должны поднять вопрос (или проверить, что у вас последняя версия)
Я попробовал первый вариант, но в конечном итоге он использовался как
ws://wss://10.10.10.10:1844/mqtt
, что неверно. Пропустил второй вариант в документации - спасибо!