在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 服务器。 谢谢