MQTT JavaScript客户端没有连接(错误的协议?)

时间:2015-12-10 13:36:16

标签: javascript node.js bower mqtt

我正在努力让我的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');
});

但是,当我使用the Bower package在前端运行相同的代码(当然没有要求)时,客户端无法连接。我也尝试了其他MQTT browserfied JS包。我更喜欢MQTT.js而不是Paho,因为我想对一个连接的客户端使用多个订阅。

如果console.log(client);,NodeJS使用protocol: 'mqtt'protocolId: 'MQTT'。前端使用protocol: 'ws'protocolId: 'MQTT'。这可能是问题吗?将这些选项添加到mqtt.connect无效。

1 个答案:

答案 0 :(得分:1)

在浏览器中,唯一的选择是通过Websockets通过MQTT进行连接。 CloudMQTT通过websockets为本机MQTT和MQTT使用不同的端口号,因此您还需要将基于浏览器的代码的端口号更改为CloudMQTT仪表板中列出的Websocket端口。