Paho 客户端 Web 套接字找不到 mqtt



我得到了一个项目,该项目通过Javascript使用Paho/MQT客户端来更新网页。该项目通过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方法不会显示为连接控制台。log不会显示:

WebSocket connection to 'ws://localhost:8080/mqtt' failed: Error during WebSocket handshake: Unexpected response code: 404

paho-mqt.js中以红色突出显示的代码如下:

new WebSocket(a, ["mqtt"])

我尝试将一个mqtt文件添加到正在运行localhost的文件夹中,但它只更改响应代码(如果存在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/mqt客户端不在同一个文件夹中,而是在/dir2/设置/。

我环顾四周,但没有看到任何人有这个问题,所以如果有任何帮助/指导,我们将不胜感激。谢谢

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

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

1)在启动mqtt之前,端口8080是否被其他进程占用。试着用conf文件启动你的蚊子。如果启动有任何问题,它将显示错误。

mosquitto-c mosquitto.conf

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

最新更新