试图弄清楚为什么 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 选项的语法,并且我在其他地方看到过这样的例子。
有什么想法吗?谢谢