javascript - mosquitto+mqtt.js 得到 "Connection refused: Not authorized"

标签 javascript node.js mqtt mosquitto

我在CentOS7上构建了mosquitto,并基于mqtt.js构建了node.js客户端。 ,使用

安装
yum install mosquitto mosquitto-clients

本地测试

> mosquitto_sub -h localhost -t test

> mosquitto_pub -h localhost -t test -m "hello world"

工作正常,但是当我运行时:

var mqtt = require('mqtt')
var client  = mqtt.connect('mqtt://192.168.1.70')

client.on('connect', function () {
  client.subscribe('presence')
  client.publish('presence', 'Hello mqtt')
})

client.on('message', function (topic, message) {
  // message is Buffer
  console.log(message.toString())
  client.end()
})

我收到错误:连接被拒绝:未授权

mosquitto.conf 类似于:

pid_file /var/run/mosquitto.pid

persistence true
persistence_location /var/lib/mosquitto/

log_dest file /var/log/mosquitto/mosquitto.log
allow_anonymous true

我使用systemctl restart mosquitto重新启动它几次,这没有帮助。防火墙已关闭并且日志文件保持为空。 状态截图: enter image description here

有人可以帮忙吗?

更新:

事实证明,mosquitto 服务因某种原因而损坏,状态显示为Active: active (exited)。 我使用 mosquitto -p 1884 -v cmd 在端口 1884 上运行另一个 mosquitto 进程,它工作正常。然后我尝试使用重新加载conf >/etc/init.d/mosquitto 重新加载。它给了我

重新加载 mosquitto 配置(通过 systemctl):mosquitto.service 的作业无效。 [失败]

所以蚊子服务有问题。 不是最终的解决方案,但我设法通过删除重新启动安装过程来解决此问题,状态变为绿色,如下所示:

Correct mosquitto status

解决方案

我设法找出它不起作用的原因。我在我的服务器上安装了rabbitmq,它使用它的“rabbitmq_mqtt”,它消耗端口1883。重新分配端口将解决这个问题。

最佳答案

我设法找出原因。我在我的服务器上安装了rabbitmq,它使用它的“rabbitmq_mqtt”,它消耗端口1883。重新分配端口将解决这个问题。问题很简单,但是,是的,CLI 应该给我更多信息。

关于javascript - mosquitto+mqtt.js 得到 "Connection refused: Not authorized",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45747442/

相关文章:

node.js - 在本地主机中登录但在 Heroku 中部署时出现错误 "secret option required for sessions"

ios - 在 MQTTKit 中使用相同客户端 ID 初始化新客户端时无法接收离线消息

Android Studio - MQTT 未连接

javascript - 如何通过 javascript 在 HTML5 Canvas 中应用图像的宽度

javascript - CSS 帮助选择某个类的最后一个元素

javascript - jQuery 递归 AJAX 调用 promise

javascript - 使用 jQuery for casperjs 选择按钮

node.js - Node js app.configure 不是一个函数

javascript - vuejs 配置 : using a global variable?

erlang - 从 Vernemq 插件发布消息