【问题标题】:node mqtt server not propagating publishings节点 mqtt 服务器不传播发布
【发布时间】:2019-07-13 13:58:59
【问题描述】:

this sample project 我正在尝试订阅频道并发布到其中。

但是我再也没有收到发送给代理的消息。

这是服务器:

const mqttServer = require("mqtt-server");

const servers = mqttServer(
    {
        mqtt: "tcp://localhost:1883",
        mqttws: "ws://localhost:1884",
    },
    {
        emitEvents: true, // default
    },
    client => {
        console.log("client connected!");
        // console.log(client)
        client.connack({
            returnCode: 0,
        });
        client.on("data", data => {
      console.log("got data: ");
      console.log(data);
      client.puback({messageId:data.packetId, ...data})
    });


    client.on("error", err => {
      console.log(err);
    });
    },
);

servers.listen(_ => {
    console.log("listening!");
});

servers.close(_ => {
    console.log("close!");
});

这是客户端:

const mqtt = require("mqtt");

const client = mqtt.connect("mqtt://localhost:1883");

client.on("connect", ack => {
    console.log("connected!");
    // console.log(ack);
    client.subscribe("/test", err => {
        console.log(err);
    });

    client.on("message", (topic, message) => {
        console.log(topic);
        // message is Buffer
        console.log(message.toString());
    });

    setInterval(_ => {
        client.publish("/test", "Hello mqtt");
    }, 3000);
});

client.on("error", err => {
    console.log(err);
});

对我缺少什么有什么想法吗?

【问题讨论】:

  • 主题不应以“/”开头 - 这是添加额外的主题级别并且是不好的做法,请参阅hivemq.com/blog/…。您是否尝试过使用命令行发布者或订阅者来测试您的代理是否确实有效?
  • 嗨 @barny 我更改了代理,现在可以正常工作了,感谢您的链接,它有帮助!

标签: javascript node.js mqtt


【解决方案1】:

事实证明,使用 aedes 代理,示例项目中的场景工作得很好!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多