Мне дали проект, который использует клиент Paho / MQTT через Javascript для обновления веб-страницы.Проект запускает http-сервер через python на localhost: 8080, а затем, когда веб-страница загружается, сценарий main.js запускает клиент и запускает соединение, как показано ниже:
var client = new Paho.MQTT.Client("localhost",Number(8080),'0');
client.onConnectionLost = onConLost;
client.onMessageArrived = onMesArvd;
console.log("start connection...");
client.connect({onSuccess: onConnect});
Проблема заключается в том, чтопри попытке подключения появляется следующая ошибка, и метод onConnect не подключается, поскольку console.log не отображается:
WebSocket connection to 'ws://localhost:8080/mqtt' failed: Error during WebSocket handshake: Unexpected response code: 404
Код, выделенный красным цветом в файле paho-mqtt.js, приведен ниже:
new WebSocket(a, ["mqtt"])
Я попытался добавить файл mqtt в папку, из которой запускается localhost, но он только изменяет код ответа (301, если папка mqtt присутствует, 200, если файл).
Добавление файла mosquitto.conf, поставляемого с проектом:
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 8080
protocol websockets
Я заметил, что он находится не в той же папке, что и клиент paho / mqtt, но в ../dir2/setup/.
Я посмотрел вокруг, но я не видел никого с этой проблемой, поэтому любая помощь / руководство будет с благодарностью.Спасибо!