如何使用不同的协议配置两个Mosquitto监听器?

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

我正在尝试在 Ubuntu 22.04 中的 mosquitto 2.0.11 上启用 websocket。 这是我的

/etc/mosquitto/mosquitto.conf

pid_file /run/mosquitto/mosquitto.pid
per_listener_settings true
password_file /etc/mosquitto/pwd_mqtt
persistence true
persistence_location /var/lib/mosquitto/
log_dest file /var/log/mosquitto/mosquitto.log
include_dir /etc/mosquitto/conf.d
connection_messages true
log_timestamp true

listener 1883
protocol mqtt
allow_anonymous false

listener 8080
protocol websockets
allow_anonymous false

开始于:

mosquitto -c /etc/mosquitto/mosquitto.conf -v
,它输出为
/var/log/mosquitto/mosquitto.log

1707293771: mosquitto version 2.0.11 starting
1707293771: Config loaded from /etc/mosquitto/mosquitto.conf.
1707293771: Opening ipv4 listen socket on port 1883.
1707293771: Opening ipv6 listen socket on port 1883.
1707293771: Opening websockets listen socket on port 8080.
1707293771: Opening ipv4 listen socket on port 1883.
1707293771: Error: Address already in use

为什么它会尝试在第二个侦听器上再次打开端口 1883?

mqtt mosquitto
1个回答
0
投票

我已经用 Mosquitto 2.0.18 复制了这个:

mosquitto-1  | 1707333576: mosquitto version 2.0.18 starting
mosquitto-1  | 1707333576: Config loaded from /mosquitto/config/mosquitto.conf.
mosquitto-1  | 1707333576: Opening ipv4 listen socket on port 1883.
mosquitto-1  | 1707333576: Opening ipv6 listen socket on port 1883.
mosquitto-1  | 1707333576: Opening websockets listen socket on port 8080.
mosquitto-1  | 1707333576: Opening ipv4 listen socket on port 1883.
mosquitto-1  | 1707333576: Error: Address in use
mosquitto-1 exited with code 

问题似乎是

password_file
是一个
per_listener
设置,但在您的配置中,您将其放置在
listener
行上方,这意味着它适用于默认侦听器。要解决此问题,请删除
per_listener_settings true
(您的配置中不需要它),或者移动
password_file
行,即(稍微简化一下):

per_listener_settings true
connection_messages true
log_timestamp true

listener 1883
protocol mqtt
allow_anonymous false
password_file /mosquitto/config/pwd_mqtt

listener 8080
protocol websockets
allow_anonymous false
password_file /mosquitto/config/pwd_mqtt

请参阅此问题了解类似内容。

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