小编Vik*_*dar的帖子

用于 MQTT 的 JavaScript 客户端不使用 WebSockets

我正在构建一个 AngularJS 应用程序并使用 Paho JavaScript 客户端通过 Web 套接字连接到 MQTT 代理 (test.mosquitto.org)。这工作得很好。我想通过直接 MQTT 连接到 MQTT 代理(为了支持未启用 websocket 的代理的完整性)。

由于Paho客户端不支持直接MQTT,我尝试了mqtt.js的浏览器版本(browserMqtt.js)。

这是我的代码中的主要行:

//var options = { host: "test.mosquitto.org", port: 8080 }; //works!
var options = { host: "test.mosquitto.org", port: 1883 }; //does not work!
var client  = mqtt.connect(options);
Run Code Online (Sandbox Code Playgroud)

同样,这适用于 WebSockets(端口 8080),但是当我尝试通过直接 MQTT(端口 1883)连接时,我在控制台中从 browserMqtt.js 收到错误消息消息,而不是来自我的错误处理程序,因为它没有触发:

WebSocket connection to 'ws://test.mosquitto.org:1883/' failed: Error during WebSocket handshake: net::ERR_CONNECTION_RESET
Run Code Online (Sandbox Code Playgroud)

我的应用程序在 Chrome 浏览器上运行。

我想知道这是代码问题还是设计问题?是否出于某种原因无法使用 MQTT 从浏览器连接到代理,并且库正在强制调用 WebSocket?

感谢您提供任何见解,因为我从几天来阅读的所有内容中收到了混合信息,但没有明确的示例可以用作解决方案。

javascript websocket mqtt angularjs

4
推荐指数
1
解决办法
6270
查看次数

标签 统计

angularjs ×1

javascript ×1

mqtt ×1

websocket ×1