簡體   English   中英

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_dirset_tcp_nodelay 我嘗試過使用和不使用 SSL 證書。
我在 windows 防火牆以及 AWS EC2 實例安全組中打開了端口 9001。

這是我運行蚊子經紀人的時候

mosquitto正在使用9001端口

但是當我嘗試使用ws://broker.mysite.com:9001ws://broker.mysite.com:9001/mqtt連接到代理時,沒有任何反應。 沒有錯誤,沒有連接。 Mosquitto 不顯示任何日志,即使我可以看到使用 WireShark 傳入的請求。 我真的被困在這里了。 請幫幫我。

編輯:
我嘗試使用 MQTTX、MQTT Explorer 和 MQTTBox Chrome App 進行連接。

根據之前的評論(在這個答案中),這個問題已經被注意到,但是我認為它值得在這里重復以幫助遇到這個問題的其他人。

簡而言之 - 在偵聽 websocket 連接時,在 Windows 上運行的 Mosquitto 版本 2.0.12、2.0.13 和 2.0.14 中似乎存在一個錯誤。 雖然代理似乎正在偵聽(在正確的端口上),但實際上它不接受連接(並且沒有記錄任何內容)。 我沒有詳細調查,但原因可能與套接字的配置方式有關。

有一個解決方法 - 在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 存儲庫中的此問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM