reactjs - 如何使用 react-websocket 连接到 Mosquitto
问题描述
后npm install react-websocket
我正在尝试连接 Windows Mosquitto(MQTT 代理服务器)。
然后我在我的反应源中设置了 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 服务器。谢谢
解决方案
推荐阅读
- bash - 如何在 bash 中为 Ubuntu 正确传递一个变量以进行 API 调用?
- angular - Angular - 使用 ngx-mask MatDatepicker 和反应形式输入
- apache-camel - Apache Camel - 消息正文中的特殊字符
- condor - CondorHT - 六个空闲的 Procs 都在不断地创建快照。怎么了?
- c# - 在 Unity3D 中让敌人跟随玩家
- java - HibernateException:将实体保存到数据库时未找到当前线程的会话
- image-processing - 如何为对象检测和对象跟踪选择图像集?
- javascript - 使用对象嵌套属性及其值在数组内搜索对象
- html - 在数据框中唯一地计算单词
- javascript - 尝试从 Angular 8 中的 html 执行函数