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

标签 javascript mqtt mosquitto

控制台浏览器中的错误日志:
“与“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/

相关文章:

Javascript 自动关闭 HTML 标签?

javascript - JSON.parse(string) 的匹配器 - 如何在运行匹配器之前调用 lambda?

jakarta-ee - 非 http 应用程序中的 CDI 范围

mqtt - 使用 Mosquitto 代理形成集群

mqtt - 如何设置 Mosquitto 桥接配置?

javascript - Jquery ajax 无限滚动排除页脚高度

javascript - jQuery UI 自动完成 : Clear Previous Search Term

bash - 为 AWS IoT 格式化 JSON 字符串

c# - Azure SDK UnauthorizedException : Put token failed. 状态代码 : 401, 状态描述:未经授权:当 KeyName 为空时,资源 URI 必须

android - Android 上最具扩展性的推送通知系统是什么?