Uma*_*yal 1 amazon-ec2 websocket mqtt mosquitto
我有一个在 Windows Server 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
Run Code Online (Sandbox Code Playgroud)
我也尝试过不使用http_dir和set_tcp_nodelay。我尝试过使用和不使用 SSL 证书。
我在 Windows 防火墙以及 AWS EC2 实例安全组中打开了端口 9001。
但是当我尝试使用以下命令连接到代理时ws://broker.mysite.com:9001,ws://broker.mysite.com:9001/mqtt什么也没有发生。没有错误,没有连接。即使我可以看到使用 WireShark 传入的请求,Mosquitto 也不显示任何日志。我真的被困在这里了。请帮帮我。
编辑:
我尝试使用 MQTTX、MQTT Explorer 和 MQTTBox Chrome 应用程序进行连接。
根据评论,这个问题之前已经注意到(在这个答案中),但是我认为值得在这里重复一下,以帮助遇到该问题的其他人。
简而言之 - 在 Windows 上运行的 Mosquitto 版本 2.0.12、2.0.13 和 2.0.14 在侦听 websocket 连接时似乎存在错误。虽然代理似乎正在侦听(在正确的端口上),但实际上它并不接受连接(并且没有记录任何内容)。我没有详细调查,但原因与套接字的配置方式有关。
有一个解决方法 -在egsocket_domain ipv4下添加listener
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
Run Code Online (Sandbox Code Playgroud)
请参阅github 存储库中的此问题以获取更多信息。
| 归档时间: |
|
| 查看次数: |
1735 次 |
| 最近记录: |