MQTT JavaScript客户端没有连接(错误的协议?)
我正在努力使我的MQTT客户端在我的应用程序内工作。 经纪人由CloudMQTT提供。
当试图在NodeJS中运行以下代码时,客户端正确连接到MQTT;
var mqtt = require('mqtt'); var client = mqtt.connect( "mqtt://m20.cloudmqtt.com", { port: 11212, username: "XXXXXXXX", password: "XXXXXXXX" } ); client.on('connect', function () { console.log('connected'); });
但是,当我使用Bower软件包在前端运行相同的代码(当然没有要求)时,客户端不能连接。 我也尝试了其他MQTT浏览器的JS包。 我更喜欢MQTT.js而不是Paho,因为我想在一个连接的客户端上使用多个订阅。
如果console.log(client);
, protocol: 'mqtt'
使用protocol: 'mqtt'
和protocolId: 'MQTT'
。 前端使用protocol: 'ws'
和protocolId: 'MQTT'
。 这可能是问题吗? 将这些选项添加到mqtt.connect不起作用。
在浏览器中,唯一的select是通过WebTable通过MQTT进行连接。 CloudMQTT使用不同的端口号用于本地MQTT和MQTT而不是Websocket,因此您还需要将基于浏览器的代码的端口号更改为CloudMQTT仪表板中列出的Websocket端口。