gpt4 book ai didi

javascript - 由于连接循环,运行 Paho javascript 示例导致网络连接崩溃

转载 作者:行者123 更新时间:2023-11-30 06:24:58 25 4
gpt4 key购买 nike

我正在尝试通过 websockets 和 paho javascript 客户端连接到本地 mosquitto mqqt 代理。但是,使用 https://www.eclipse.org/paho/clients/js/ 中显示的示例崩溃我的网络连接。在 chrome 或 ie 控制台中,我发现了问题:一遍又一遍地建立连接(每秒调用多次函数 onConnect)。

client.connect({onSuccess:onConnect});  
// called when the client connects
function onConnect() {
// Once a connection has been made, make a subscription and send a message.
console.log("Connection was successful");
client.subscribe("World");
message = new Paho.MQTT.Message("Hello");
message.destinationName = "World";
client.send(message);
}

在代理上我可以看到客户端正在连接:

New client connected from 192.168.1.3 as web_78 (c1, k60, u'user123').

但是消息没有被客户端广播。当我终止浏览器时,我在客户端上看到:

Socket error on client web_78, disconnecting.

当我尝试不同的代码示例时,同样的事情发生了:https://jpmens.net/2014/07/03/the-mosquitto-mqtt-broker-gets-websockets-support/

我在我的 Raspberry Pi 上使用 mosquitto 1.5 版,我真的不知道如何让它运行。也许问题出在 mosquitto 服务器而不是客户端?

这是我定义端口的 mosquitto.conf 的一部分

listener 9001
protocol websockets

其他客户端可以连接(例如通过 paho python)和 mqtt(没有 websockets)。

pi@raspberrypi ~ $ sudo mosquitto -c /etc/mosquitto/mosquitto.conf
1530009485: mosquitto version 1.5 starting
1530009485: Config loaded from /etc/mosquitto/mosquitto.conf.
1530009485: Opening websockets listen socket on port 9001.
1530009485: Opening ipv4 listen socket on port 1883.
1530009485: Opening ipv6 listen socket on port 1883.
1530009485: New connection from 192.168.1.51 on port 1883.
1530009485: New client connected from 192.168.1.51 as DVES_9CE05F (c1, k15, u'johann').

如有任何帮助,我们将不胜感激!

编辑更新:

问题一定出在我的服务器上,因为我可以访问像 HiveMQ 这样的公共(public)代理。

最佳答案

我遇到了同样的问题。 Mosquitto 1.5.x 中存在与 libwebsockets 相关的问题,至少在使用 Raspbian jessie 安装在 Raspberry Pi 上的版本中是这样。当我将 Mosquitto 降级到 1.4.15 时,这个问题就解决了。

https://github.com/eclipse/mosquitto/issues/1050 中了解它

关于javascript - 由于连接循环,运行 Paho javascript 示例导致网络连接崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51040913/

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