Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MQTT JavaScript客户端未连接(协议错误?)_Javascript_Node.js_Bower_Mqtt - Fatal编程技术网

MQTT JavaScript客户端未连接(协议错误?)

MQTT 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: "

我非常努力地让我的MQTT客户机在我的应用程序中工作。经纪人由提供

当尝试在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');
});
但是,当我使用在前端运行相同的代码(当然不需要)时,客户端不会连接。我还尝试了其他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工作起来。谢谢