【问题标题】:Running Paho javascript example crashes network connection because of connect loop由于连接循环,运行 Paho javascript 示例会导致网络连接崩溃
【发布时间】:2018-06-26 10:42:13
【问题描述】:

我正在尝试通过 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 这样的公共代理。

【问题讨论】:

  • 您是否使用未更改的 paho 示例(除了经纪人的地址)?
  • 是的,只是改了ip地址和端口。
  • 我刚刚在 x86_64 Ubuntu 上构建了 v1.5 源代码,并且运行正常。你的树莓派版本是从哪里得到的?
  • 另外,您似乎编辑了示例以更改客户端 ID 并设置用户名和密码,请使用该代码更改更新问题。

标签: javascript mqtt mosquitto paho


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-11
    • 2014-11-09
    • 2022-07-22
    • 1970-01-01
    相关资源
    最近更新 更多