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端口。