如何使用 react-websocket 连接到 Mosquitto

时间:2021-05-10 10:42:59

标签: reactjs websocket mqtt mosquitto

npm install react-websocket之后

我正在尝试连接 Windows Mosquitto(MQTT 代理服务器)。

然后我在我的react源中设置了websocket地址,但是无法接收来自Mosquitto的消息,也无法向Mosquitto服务器发布任何消息。

但它适用于由 Java 运行的 glassfish 服务器。

我认为 Mosquitto 和 glassfish 服务器是同一个 websocket 服务器,但它们之间似乎有区别。

是否有使用 react-websocket 库连接 Mosquitto Broker 服务器的解决方案?

react-websocket 库的版本是 2.0.0 Mosquitto MQTT Broker 服务器版本为 1.5.4

import Websocket from 'react-websocket'

export default class WebsocketInput {

  constructor(queue, onOpenCallback) {
    this.queue = queue
    this.websocket = new Websocket({
      url: process.env.REACT_APP_WEBSOCKET_ADDRESS,
      onMessage: function(data) {
        queue.offer(JSON.parse(data))
      },
      onOpen: function() {
        onOpenCallback()
      }
    })
    this.websocket.setupWebsocket()
  }

  sendMessage(msg) {
    this.websocket.state.ws.send(msg)
  }

  close() {
    this.websocket.shouldReconnect = false
    this.websocket.state.ws.close()
  }
}

这是 React 代码,我是从 https://github.com/door2door-io/simulation-demo 下载的。我设置了 url 'ws://localhost:9001',但在 React 应用程序中无法接收任何消息。

port 1883
protocol mqtt

listener 9001
protocol websockets

这是 mosquitto.conf 文件的一部分。我通过键入 mosquitto -v -c mosquitto.conf 来运行服务器,并在 Windows CMD 中运行 mosquitto 服务器。 谢谢

0 个答案:

没有答案