我想使用 Javascript 连接 MQTT 代理,以便订阅主题并发布消息。连接需要通过端口 1883 上的 tcp 完成。我正在使用 MQTT.js 库。前端是AngularJS。 下面的例子是MQTT.js页面中的例子,但是无法连接。有人可以帮忙吗?
通过index.html连接:
<script src="../node_modules/mqtt/browserMqtt.js"></script>
连接代码:
var client = mqtt.connect('url.com:1883',{clientId :'client1', clean: true});
client.on('connect', function () {
console.log("onsubscribe");
client.subscribe('votingSignals', function (err) {
if (!err) {
console.log("onsubscribe");
client.publish('votingSignals', 'start')
}
})
})
client.on('message', function (topic, message) {
// message is Buffer
console.log(message.toString())
client.end()
})
显示的错误是:
WebSocket connection to 'ws://url.com:1883/' failed: Error during WebSocket handshake: net::ERR_CONNECTION_RESET
最佳答案
从 Web 浏览器中,您只能通过 Websockets 使用 MQTT,而不能使用 native MQTT(通过 TCP)。
这是因为浏览器不允许您打开普通套接字。
关于javascript - 无法使用 mqtt.js 通过 tcp 将表单 javascript 连接到代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56516604/