Js mqtt客户端未连接到发布服务器

Js mqtt客户端未连接到发布服务器,mqtt,Mqtt,我已经创建了一个简单的节点js代理和发布程序,工作正常,请看下面的代码 broker -------------- //MQTT broker var mosca = require('mosca') var settings = {port:3000} var broker= new mosca.Server(settings) broker.on('ready',()=>{ console.log("Broker is ready") }) 出版商是

我已经创建了一个简单的节点js代理和发布程序,工作正常,请看下面的代码

broker
--------------
//MQTT broker
var mosca = require('mosca')
var settings =  {port:3000}
var broker= new mosca.Server(settings)


broker.on('ready',()=>{
    console.log("Broker is ready")
})
出版商是

//mqtt publisher
var mqtt=require('mqtt')
var client = mqtt.connect("mqtt://127.0.0.1:3000")
var topic = "ping"
var message = "Ping button"


client.on("connect",()=>{
    setInterval(()=>{
        client.publish(topic,message)
        console.log("clicked",message)
    },5000)
})
我创建了一个html文件,其中包含连接到mqtt代理的js

var mqtt;
    var reconnectTimeOut=2000;
    var host="127.0.0.1";
    var port=3000;

    function onConnect(){
        console.log("Connected");
        message= new Paho.MQTT.Message("I am Connected");
        message.destinationName="ping";
        mqtt.send(message);
    }
    function MQTTconnect(){
        console.log("Connecting to host");
        mqtt=new Paho.MQTT.Client(host,port,"ping");
        var options={
            timeout : 3000,
            onSuccess: onConnect,
        };
        mqtt.connect(options);
    }
    MQTTconnect();

没有错误,但是客户端没有连接到服务器,没有执行onConnect

您的代理只是在端口3000上创建一个本机MQTT侦听器,当您尝试从浏览器使用Paho JavaScript客户端进行连接时,它将只能使用MQTT over WebSockets连接到代理,而代理没有侦听该代理

您将需要在单独的端口上向代理添加WebSocket支持,可以找到一个适用于mosca的方法