You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mosquitto 1.4.14在Windows下WebSocket支持失效,如何解决?

解决Mosquitto 1.4.14 WebSocket连接失败的问题

我之前在使用Mosquitto 1.4.x版本开启WebSocket时也踩过不少坑,结合你的情况,给你一步步梳理解决方案:

一、正确配置Mosquitto 1.4.14的WebSocket支持

Mosquitto 1.4.x版本默认没有编译WebSocket模块,而且配置时容易犯端口混用的错误,按下面步骤来:

1. 确认WebSocket模块已编译

如果你是通过包管理器(比如apt、yum)安装的Mosquitto,大概率默认包不带WebSocket支持,需要重新编译:

  • 先安装依赖:Debian/Ubuntu系执行sudo apt-get install libwebsockets-dev,CentOS/RHEL系对应安装libwebsockets-devel
  • 下载Mosquitto 1.4.14源码,编译时开启WebSocket:
    tar -xf mosquitto-1.4.14.tar.gz
    cd mosquitto-1.4.14
    cmake -DWITH_WEBSOCKETS=ON .
    make && sudo make install
    

2. 修正配置文件的错误

你之前的问题很可能是MQTT端口和WebSocket端口混用了!1883是MQTT的默认TCP端口,WebSocket需要单独指定一个端口,比如9001。修改mosquitto.conf,添加以下配置:

# 保留原MQTT端口配置
listener 1883
protocol mqtt

# 新增WebSocket监听端口
listener 9001
protocol websockets

3. 重启Mosquitto并验证

  • 用指定配置文件重启:mosquitto -c /path/to/your/mosquitto.conf -v(-v参数会输出详细日志,方便排查)
  • 检查端口监听:执行netstat -tulpn | grep mosquitto,如果看到0.0.0.0:9001的监听记录,说明WebSocket端口已开启
  • 前端连接地址改为ws://localhost:9001/mqtt,再测试连接

二、不想折腾?直接用这些支持WebSocket的现成Broker

如果觉得编译老版本太麻烦,可以直接用这些开箱即用的Broker:

  • Eclipse Mosquitto 2.x+:新版本默认支持WebSocket,安装后只需在配置文件中添加WebSocket端口即可,无需额外编译
  • EMQX:开源高性能MQTT Broker,默认开启WebSocket端口(8083),自带管理界面,适合快速测试和生产环境
  • HiveMQ社区版:免费开源,支持WebSocket,配置简单,有可视化管理工具

内容的提问来源于stack exchange,提问作者DRPandya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 04:17:51