Node MQTT 客户端不会连接到 MQTT 服务器,但 CLI mosquitto_pub 可以

问题描述 投票:0回答:0

试图弄清楚为什么 MQTT 节点库无法使用用户名、密码连接到 MQTT 服务器,即使它使用 CLI 命令也能正常工作。

CLI 发布

 mosquitto_pub -t testtopic -h localhost -p 1883  -u admin -P adminpassword -m "test" 

连接发送-mqtt.js

const mqtt = require('mqtt');

var local = {
  username: 'admin',
  password: 'adminpassword',
}

const client = mqtt.connect(`tcp://localhost:1883`,local);

client.on('connect', () => {
  console.log('Connected')

  setInterval(e =>{
    sendReportToMQTT()
  },5000)

})

client.on('error', () => {console.error("error")})

function sendReportToMQTT() {

  let reportFile = {};
  let stringifiedReport = JSON.stringify({test:"Message"});

  client.publish("amq.topic", stringifiedReport);
  console.log('published report!', message);
}

我只是继续收到

Connection refused: Not authorized
。我已经验证消息实际上已经到达服务器,并且我可以通过
mosquitto_sub
或例如 NiFi 使用它们。

我会提供更多信息,我想不出任何其他有趣的信息。如您所见,所有本地主机。我已经从 他们的 github 仔细检查了 mqtt 选项的语法,并且我在其他地方看到过这样的例子。

有什么想法吗?谢谢

mqtt mosquitto mqtt.js
© www.soinside.com 2019 - 2024. All rights reserved.