Paho 客户端 Web Socket 找不到 mqtt

Paho Client Web Socket Can't Find mqtt

我得到一个项目,该项目通过 Javascript 使用 Paho/MQTT 客户端来更新网页。该项目在 localhost:8080 上通过 python 启动一个 http 服务器,然后,当网页加载时,一个 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 文件添加到本地主机 运行 来自的文件夹,但它只会更改响应代码(如果存在 mqtt 文件夹则为 301,如果有文件则为 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/.

我环顾四周,但没有看到任何人遇到此问题,因此 help/guidance 将不胜感激。谢谢!

1)启动mqtt之前8080端口是否被其他进程占用。尝试使用 conf 文件启动你的 mosquitto。启动有问题会报错

mosquitto -c mosquitto.conf

2) 尝试将端口更改为 9001,因为它是在 mqtt 中使用 websockets 的默认端口

感谢 Santosh Balaji 在这方面为我指明了正确的方向。

我想我需要在 pi 上 install mosquitto,然后将 mosquitto 安装目录中的 mosquitto.conf 文件更改为项目提供的文件。安装并确认我的 conf 正在使用后,js 和 Python 连接没有问题。