控制台浏览器中的错误日志:
“与“ws://127.0.0.1:1883/mqtt”的 WebSocket 连接失败:WebSocket 握手期间出错: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);
- 使用库 mqtt-2.9.0.js
- 使用 mosquitto v1.5.4 windows10
============================================
最佳答案
默认情况下,Mosquitto 监听端口 1883 并接受使用 native MQTT 的连接
如果您想通过 Websockets 连接 MQTT,则需要将 Mosquitto 配置为监听不同的端口并指定使用 websockets
传输。
您可以将以下内容添加到 mosquitto.conf 中:
listener 8883
protocol websockets
这将导致 mosquitto 在端口 8883 上监听通过 Websockets 连接的 MQTT。
然后您可以按如下方式修改代码:
var options = {
clientId: 'web-client',
connectTimeout: 5000,
hostname: '127.0.0.1',
port: 8883,
path: '/mqtt'
};
var client = mqtt.connect(options);
还值得指出的是,您的 clientId 对于每个连接的客户端都必须是唯一的,因此如果您要一次多次加载页面,则需要将其设置为动态。
关于javascript - 如何从 MQTT javascript 客户端连接到 Mosquitto 服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54161371/