MQTT JavaScript客户端未连接(协议错误?)
我非常努力地让我的MQTT客户机在我的应用程序中工作。经纪人由提供 当尝试在NodeJS中运行以下代码时,客户机正确连接到MQTTMQTT JavaScript客户端未连接(协议错误?),javascript,node.js,bower,mqtt,Javascript,Node.js,Bower,Mqtt,我非常努力地让我的MQTT客户机在我的应用程序中工作。经纪人由提供 当尝试在NodeJS中运行以下代码时,客户机正确连接到MQTT var mqtt = require('mqtt'); var client = mqtt.connect( "mqtt://m20.cloudmqtt.com", { port: 11212, username: "XXXXXXXX", password: "
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');
});
但是,当我使用在前端运行相同的代码(当然不需要)时,客户端不会连接。我还尝试了其他MQTT浏览器化JS包。我更喜欢MQTT.js,而不是Paho,因为我希望对一个连接的客户端使用多个订阅
如果
console.log(客户端)
,NodeJS使用协议:“mqtt”
和protocolId:“mqtt”
。前端使用协议:“ws”
和protocolId:“MQTT”
。这可能是问题所在吗?将这些选项添加到mqtt.connect没有效果。在浏览器中,唯一的选项是通过WebSocket上的mqtt进行连接。CloudMQTT对本机MQTT和Websocket上的MQTT使用不同的端口号,因此您还需要将基于浏览器的代码的端口号更改为CloudMQTT仪表板中列出的Websocket端口。我不确定您对PAHO客户端的多个订阅的意思。您可以使用PAHO客户端订阅多个主题websockets端口为31212。但是,CloudMQTT仪表板显示“Websockets端口(仅限TLS)”。我在本地使用NodeJS,有什么方法可以让它工作吗?这确实有效,我在MAMP中创建了一个自签名SSL证书,这让CloudMQTT的websockets工作起来。谢谢