gpt4 book ai didi

javascript - 如何通过网络套接字连接到 Raspberry Pi 上的 Mosquitto 代理?

转载 作者:行者123 更新时间:2023-12-03 06:59:41 25 4
gpt4 key购买 nike

我正在尝试连接到安装了 Mosquitto 代理的 Raspberry Pi。 RPi 上的客户端使用以下方式连接:

client.connect("127.0.0.1", 1883, 60)

我尝试使用以下规范在 MQTT JavaScript 客户端上连接到它,但失败了:

client = new Paho.MQTT.Client("10.101.125.190", 1883,"myclientid_" + parseInt(Math.random() * 100, 10)); 

我还尝试从 JavaScript 端将端口更改为 8080,但仍然失败。如果我将 RPi 上的端口更改为 8080,那么它甚至无法连接。

这是我目前遇到的错误:

WebSocket connection to 'ws://10.101.125.190:1883/mqtt' failed: Error during WebSocket handshake: net::ERR_CONNECTION_RESET

那么,我需要更改什么来修复此错误? RPi 和我的 JS 客户端都在同一个本地网络中。

编辑:我忘了提及,我已经使用 test.mosquitto.org - 8080 尝试过这一点并且它有效,但是一旦我更改地址,我就开始收到错误。

最佳答案

基于 websockets 的 MQTT 不与 native MQTT 共享相同的端口。

您需要在 mosquitto 配置中添加一个新的监听器。

您需要将类似以下内容添加到/etc/mosquitto/mosquitto.conf 的末尾(或在/etc/mosquitto/mosquitto.d 中的单独文件中)

listener 1884
protocol websockets

然后需要更新您的 JavaScript 以连接到端口 1884 而不是 1883

您还需要使用比 1.4.x iirc 更新的 mosquitto 版本,为 raspbian 打包的默认版本太旧。按照说明操作here获取更新版本。

关于javascript - 如何通过网络套接字连接到 Raspberry Pi 上的 Mosquitto 代理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37111941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com