DRTLS项目运行时Chrome控制台报MQTT WebSocket连接192.168.0.156:1883失败求助
MQTT WebSocket连接失败排查方案
- 端口匹配修正:MQTT默认1883端口为TCP协议专用端口,不支持WebSocket连接。你需要先确认所用MQTT broker(如EMQX、Mosquitto)的WebSocket监听端口,常规预设端口为8083、9001,替换代码中的1883端口即可。
- 补全连接路径:绝大多数MQTT broker的WebSocket服务需要指定路径后缀,标准后缀为
/mqtt,调整后的连接地址格式为ws://192.168.0.156:8083/mqtt,不要使用裸端口地址。 - 检查跨域配置:浏览器发起WebSocket请求受同源策略限制,需确认MQTT broker已开启跨域访问权限,或前端页面部署地址与MQTT服务的域名、端口一致。
- 校验端口连通性:在本地执行
telnet 192.168.0.156 [MQTT WebSocket端口],确认端口无防火墙、安全组拦截,可正常访问。 - 鉴权信息核对:确认配置的用户名、密码与broker侧配置一致,clientId无重复占用情况。
修改后的连接代码示例
// 请将端口和路径替换为你实际broker的WebSocket配置 const client = mqtt.connect("ws://192.168.0.156:8083/mqtt", { clientId: "ee9ea05d56814fd9992bf1ef34119683", username: "dwmuser", password: "dwmpass" });
内容的提问来源于stack exchange,提问作者Zeng Jiawei
相关产品推荐
相关产品推荐

