MQTT mosquitto-使用mqttws31.js在JavaScript中实现Websocket

roh*_*ama 3 javascript websocket mqtt mosquitto

通过包含mqttws32.js文件,使用带有JavaScript的mosquitto Broker和MQTT来实现websocket。

蚊帐版本:1.4.9

一开始我得到了:

rohan@rohan-PC:~$ mosquitto
1470241326: mosquitto version 1.4.9 (build date Fri, 03 Jun 2016 09:22:47 +0100) starting
1470241326: Using default config.
1470241326: Opening ipv4 listen socket on port 1883.
1470241326: Opening ipv6 listen socket on port 1883.
Run Code Online (Sandbox Code Playgroud)

作为最新版本的mosquitto支持Web套接字。

我正在使用以下代码:

client = new Paho.MQTT.Client("localhost", 1883, "myclientid_" + parseInt(Math.random() * 100, 10));
Run Code Online (Sandbox Code Playgroud)

出现错误:

WebSocket与“ ws:// localhost:1883 / mqtt”的连接失败:建立连接错误:net :: ERR_CONNECTION_REFUSED

我的听众得到了:

1470241581: New connection from ::1 on port 1883.
1470241581: Socket error on client <unknown>, disconnecting.
Run Code Online (Sandbox Code Playgroud)

搜索后,我找到了一种解决方案,可将以下行添加到mosquitto.conf文件中

listener 1884
protocol websockets
Run Code Online (Sandbox Code Playgroud)

我将端口更改为1884,但仍然收到相同的错误。

har*_*llb 6

Mosquitto没有默认的配置文件位置,因此您需要在命令行上实际指定它

$ mosquitto -c /path/to/mosquitto.conf
Run Code Online (Sandbox Code Playgroud)

如果您仍然想在1883年侦听本机MQTT连接以及1884年的websocket,则配置文件中还应该包含一行额外的行

port 1883

listener 1884
protocol websockets
Run Code Online (Sandbox Code Playgroud)

这应该使您可以正常运行的代理正在通过端口1884上的Websocket监听MQTT