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

React应用中MQTT与Mosquitto Broker连接失败求助

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

问题根源

默认情况下,Mosquitto Broker仅开启MQTT TCP协议的1883端口,并不支持WebSocket连接。你在React里用ws://localhost:1883尝试连接,相当于用WebSocket协议去访问TCP端口,自然会失败。

解决步骤

1. 配置Mosquitto支持WebSocket

找到你的Mosquitto配置文件(不同系统路径不同:

  • Linux:/etc/mosquitto/mosquitto.conf
  • Windows:Mosquitto安装目录下的mosquitto.conf)

打开文件,添加以下配置:

# 保留原有的TCP端口(供命令行使用)
listener 1883
protocol mqtt

# 新增WebSocket监听端口(供React等前端使用)
listener 1884
protocol websockets

2. 重启Mosquitto服务

  • Linux:执行命令 sudo systemctl restart mosquitto
  • Windows:打开「服务」找到「Mosquitto Broker」,右键选择重启;或者命令行依次执行:
    net stop mosquitto
    net start mosquitto
    

3. 修改React代码中的连接地址

把原来的连接URL从 ws://localhost:1883 改成 ws://localhost:1884。

4. 验证连接(可选)

可以用MQTTX这类工具,选择WebSocket协议,连接ws://localhost:1884,确认能正常连接后再回到React代码测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 00:43:09