我已经设置了一个 mosquitto 代理,但它拒绝通过 websockets 连接 这是我的conf文件:
# Place your local configuration in /etc/mosquitto/conf.d/
#
# A full description of the configuration file is at
# /usr/share/doc/mosquitto/examples/mosquitto.conf.example
pid_file /var/run/mosquitto.pid
persistence true
persistence_location /var/lib/mosquitto/
log_dest file /var/log/mosquitto/mosquitto.log
include_dir /etc/mosquitto/conf.d
listener 1883 0.0.0.0
listener 8008 0.0.0.0
protocol websockets
而且我在conf.d 上没有任何conf
使用 PAHO javascript 客户端,我收到 ERR_CONNECTION_REFUSED
顺便说一句,我使用 debian jessie 作为操作系统
-------------------------------------编辑 1---------- ------------------------
我已经降低了 iptables,但它仍然无法工作。 通常的连接方式正在工作(使用端口 1883) 这是我启动 mosquitto 时的输出
1477788244: mosquitto version 1.4.10 (build date Thu, 25 Aug 2016 10:12:09 +0100) starting
1477788244: Using default config.
1477788244: Opening ipv4 listen socket on port 1883.
1477788244: Opening ipv6 listen socket on port 1883.
启动输出中的重要行在这里:
1477788244: Using default config.
这表示 mosquitto 正在使用其内置配置(仅侦听 1883 上的本机 MQTT 流量),甚至不读取您的配置文件。
如果您只是在没有命令行选项的情况下启动 mosquitto,这就是所使用的,它不会在 /etc/mosquitto/ 中查找配置文件。
您需要使用
-c
选项明确告诉 mosquitto 它的配置文件在哪里。
mosquitto -c /etc/mosquitto/mosquitto.conf
根据您安装 mosquitto 的方式,您可能需要编辑在启动时自动启动它的脚本。这可能在这里:/etc/init.d/mosquitto
我在同样的问题上遇到了令人难以置信的困难,我找到了这篇文章:
https://cedalo.com/blog/enabling-websockets-over-mqtt-with-mosquitto/
这里的关键是端口是 8080(你有 8008?),直到现在我完全忽略了它,而且看起来你可能输入错误。这是我的完整
mosquitto.conf
文件内容:
listener 1883 0.0.0.0
listener 8080
allow_anonymous true
protocol websockets
我可能需要将
0.0.0.0
添加到第二行以保持一致性 - 或者将其从第 1 行中删除,但它有效,坦率地说,在遇到砖墙 days 之后,我现在可以使用 ws://
协议进行连接.