无法从 ReactJS 连接到 MQTT Broker

Cannot connect to MQTT Broker from ReactJS

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

这是我的连接文件:

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;

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

此外,如果 mqtt.connect() 函数要求输入主机名和端口,那么您不应在 post 字段中输入 URL。从开头删除 ws://