Mosquitto 2.0.14 与 Websockets
Mosquitto 2.0.14 with Websockets
我在 Windows 服务器 2019 中有一个 Mosquitto 2.0.14 代理 运行。我可以使用启用了 SSL 的 mqtts 协议通过端口 8883 连接到它。我也可以在没有 SSL 的情况下通过端口 1883 连接到它。
现在我想使用 Websockets 进行连接。所以我添加了一个监听器:
listener 9001
protocol websockets
allow_anonymous false
password_file C:\mosquitto\password.txt
http_dir C:\mosquitto\http_dir
set_tcp_nodelay true
我也尝试过不使用 http_dir
和 set_tcp_nodelay
。我试过使用和不使用 SSL 证书。
我在 windows 防火墙以及 AWS EC2 实例安全组中打开了端口 9001。
但是当我尝试使用 ws://broker.mysite.com:9001
或 ws://broker.mysite.com:9001/mqtt
连接到代理时,没有任何反应。没有错误,没有连接。 Mosquitto 不显示任何日志,即使我可以看到使用 WireShark 传入的请求。我真的被困在这里了。请帮帮我。
编辑:
我尝试使用 MQTTX、MQTT Explorer 和 MQTTBox Chrome App.
进行连接
根据之前的评论(在 中),此问题已被注意到,但我认为值得在此重复以帮助遇到此问题的其他人。
简而言之 - Windows 上的 Mosquitto 版本 2.0.12、2.0.13 和 2.0.14 运行 在侦听 websocket 连接时似乎存在错误。虽然代理似乎正在侦听(在正确的端口上),但实际上它不接受连接(并且没有记录任何内容)。我没有详细调查,但原因可能与套接字的配置方式有关。
有一个解决方法 - 在 listener
下添加 socket_domain ipv4
例如
listener 9001
protocol websockets
allow_anonymous false
password_file C:\mosquitto\password.txt
http_dir C:\mosquitto\http_dir
set_tcp_nodelay true
socket_domain ipv4
有关详细信息,请参阅 github 存储库中的 this issue。
我在 Windows 服务器 2019 中有一个 Mosquitto 2.0.14 代理 运行。我可以使用启用了 SSL 的 mqtts 协议通过端口 8883 连接到它。我也可以在没有 SSL 的情况下通过端口 1883 连接到它。
现在我想使用 Websockets 进行连接。所以我添加了一个监听器:
listener 9001
protocol websockets
allow_anonymous false
password_file C:\mosquitto\password.txt
http_dir C:\mosquitto\http_dir
set_tcp_nodelay true
我也尝试过不使用 http_dir
和 set_tcp_nodelay
。我试过使用和不使用 SSL 证书。
我在 windows 防火墙以及 AWS EC2 实例安全组中打开了端口 9001。
但是当我尝试使用 ws://broker.mysite.com:9001
或 ws://broker.mysite.com:9001/mqtt
连接到代理时,没有任何反应。没有错误,没有连接。 Mosquitto 不显示任何日志,即使我可以看到使用 WireShark 传入的请求。我真的被困在这里了。请帮帮我。
编辑:
我尝试使用 MQTTX、MQTT Explorer 和 MQTTBox Chrome App.
根据之前的评论(在
简而言之 - Windows 上的 Mosquitto 版本 2.0.12、2.0.13 和 2.0.14 运行 在侦听 websocket 连接时似乎存在错误。虽然代理似乎正在侦听(在正确的端口上),但实际上它不接受连接(并且没有记录任何内容)。我没有详细调查,但原因可能与套接字的配置方式有关。
有一个解决方法 - 在 listener
下添加 socket_domain ipv4
例如
listener 9001
protocol websockets
allow_anonymous false
password_file C:\mosquitto\password.txt
http_dir C:\mosquitto\http_dir
set_tcp_nodelay true
socket_domain ipv4
有关详细信息,请参阅 github 存储库中的 this issue。