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

Mosquitto配合Paho JS客户端WebSocket连接失败及配置咨询

问题1:JS客户端成功连接MQTT Broker的解决方法
  • Mosquitto 2.0及以上版本默认禁止匿名访问,首先修改你的mosquitto配置文件,添加匿名访问权限:
listener 1883
allow_anonymous true

listener 9001
protocol websockets
allow_anonymous true
  • 修改JS连接配置,Paho MQTT客户端默认请求路径为/mqtt,而Mosquitto websocket默认监听根路径/,需要在连接选项中指定path参数:
var options = {
    timeout: 3,
    onSuccess: onConnect,
    path: "/"
};
  • 确认代码中填写的host和Mosquitto运行主机的IP一致,你报错日志显示连接的是127.0.0.1,如果是在局域网其他设备访问页面,需要填写Mosquitto主机的局域网IP(也就是你代码里写的192.168.1.94)。
  • 检查Windows防火墙设置,开放9001端口的入站规则,测试阶段可以临时关闭防火墙验证连通性。
  • 修改配置后重启Mosquitto服务,再打开HTML测试即可。如果后续开发React项目,推荐使用mqtt npm包,连接配置和上述参数一致,连接成功后订阅对应topic,收到消息后dispatch到Redux即可完成状态更新。
问题2:Mosquitto自定义host配置方法
  • 你可以使用myhost.local这类自定义域名,不需要仅用127.0.0.1或者物理IP。
  • Windows系统下修改hosts文件即可实现自定义域名映射,hosts文件路径为C:\Windows\System32\drivers\etc\hosts,用管理员权限打开后添加如下内容:
192.168.1.94 myhost.local
  • 保存后本机访问myhost.local就会自动解析到192.168.1.94。如果局域网内其他设备也要使用该自定义域名,需要对应修改其他设备的hosts文件,或者在局域网路由器中配置静态DNS解析规则。
  • Mosquitto默认监听所有网卡的请求,如果你需要限制仅监听指定IP,可以在listener配置后追加IP,例如listener 9001 192.168.1.94就只会响应该IP的请求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 17:15:03