mosquitto(mqtt 代理)拒绝通过 Websocket 进行连接

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

我已经设置了一个 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.
websocket mqtt mosquitto
2个回答
1
投票

启动输出中的重要行在这里:

1477788244: Using default config.

这表示 mosquitto 正在使用其内置配置(仅侦听 1883 上的本机 MQTT 流量),甚至不读取您的配置文件。

如果您只是在没有命令行选项的情况下启动 mosquitto,这就是所使用的,它不会在 /etc/mosquitto/ 中查找配置文件。

您需要使用

-c
选项明确告诉 mosquitto 它的配置文件在哪里。

mosquitto -c /etc/mosquitto/mosquitto.conf

根据您安装 mosquitto 的方式,您可能需要编辑在启动时自动启动它的脚本。这可能在这里:/etc/init.d/mosquitto


0
投票

我在同样的问题上遇到了令人难以置信的困难,我找到了这篇文章:

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://
协议进行连接.

© www.soinside.com 2019 - 2024. All rights reserved.