首页 > 解决方案 > 无法从 ReactJS 连接到 MQTT 代理

问题描述

我在连接到在 docker 中运行的本地 MQTT 代理时遇到问题。

这是我的连接文件:

import mqtt from 'mqtt';
const client = mqtt.connect({
  host: 'ws://192.168.31.46',
  port: 1883,
});
client.on('connect', () => {
  console.log('Connected');
  client.subscribe('SEND_MESSAGE', function (topic, message) {
    console.log({ topic, message });
  });
});
export default client;

标签: javascriptreactjswebsocketmqttmq

解决方案


端口号 (99.9%) 错误,端口 1883 是本机 MQTT 端口,而不是 MQTT over WebSockets。正确的端口取决于您如何配置代理(假设 mosquitto,它没有默认定义的 WebSocket 侦听器)

此外,如果该mqtt.connect()函数要求提供主机名和端口,那么您不应该为 post 字段提供 URL。从一开始就删除ws://


推荐阅读