如何从 MQTT javascript 客户端连接到 Mosquitto 服务器?

How to connect from MQTT javascript client to Mosquitto Server?

控制台浏览器中的错误日志:
"WebSocket connection to 'ws://127.0.0.1:1883/mqtt' failed: Error during WebSocket handshake: net::ERR_CONNECTION_RESET"

我的代码 .js 连接 mosquitto 服务器:

var options = {
            clientId: 'web-client',
            connectTimeout: 5000,
            hostname: '127.0.0.1',
            port: 1883,
            path: '/mqtt'
        };

var client = mqtt.connect(options);

=========================================

虽然 1883 是 vanilla MQTT 连接的常用端口 - websockets 通常的默认端口是 8883 端口。您是否尝试过 8883 端口?

Durr 将我的拼写错误 8888 修改为 8883

默认情况下,Mosquitto 侦听端口 1883 并接受使用本机 MQTT 的连接

如果您想通过 Websockets 连接 MQTT,您需要配置 Mosquitto 以侦听不同的端口并指定使用 websockets 传输。

您可以将以下内容添加到您的mosquitto.conf:

listener 8883
protocol websockets

这将导致 mosquitto 通过 Websockets 连接在端口 8883 上侦听 MQTT。

然后您可以按如下方式修改您的代码:

 var options = {
   clientId: 'web-client',
   connectTimeout: 5000,
   hostname: '127.0.0.1',
   port: 8883,
     path: '/mqtt'
   };

var client = mqtt.connect(options);

同样值得指出的是,您的 clientId 对于连接的每个客户端都必须是唯一的,因此如果您要一次加载页面不止一次,则需要将其设置为动态的。