sdkhy0808 2021-03-21 15:22 采纳率: 0%
浏览 17

mqtt open websockets port 9001

配置的端口是9001,但却creating Vhost default port 30551616,这个端口不存在,为啥不是9001端口呢? 

而且只有1个协议,IPV6 on,websocket协议根本没开

导致连接ws失败,connection refused

 

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-07-23 23:44
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    在您的配置中,mosquitto服务正在尝试监听端口9001,但是它创建了一个名为"vhost default"的虚拟主机,但该主机没有IPv6支持。这意味着当客户端尝试与该虚拟主机建立WebSocket连接时,它将收到一个错误消息:“无法找到UID 900”。此外,由于WebSocket默认使用TCP协议,您应该至少有两个协议(TCP和UDP),而不是只有一个。

    为了解决这些问题,请确保您的mosquitto服务已经启用了IPv6支持,并且正确地配置了WebSocket选项。例如,在/etc/mosquitto/mosquitto.conf文件中添加以下行:

    listen {
        port = 9001;
        protocol = 3; # UDP or TCP
    }
    

    然后重启mosquitto服务以应用更改。如果问题仍然存在,请检查mosquitto的服务日志文件,看看是否有任何关于无法打开特定端口或找不到特定用户ID的信息。这可能意味着您需要更详细地配置mosquitto以允许IPv6连接或指定正确的用户ID。

    评论

报告相同问题?