【问题标题】:Paho Client Web Socket Can't Find mqttPaho 客户端 Web 套接字找不到 mqtt
【发布时间】:2019-01-22 08:20:45
【问题描述】:

我得到了一个项目,它通过 Javascript 使用 Paho/MQTT 客户端来更新网页。项目在 localhost:8080 上通过 python 启动一个 http 服务器,然后在加载网页时,一个 main.js 脚本启动客户端并运行连接,如下所示:

var client = new Paho.MQTT.Client("localhost",Number(8080),'0');
client.onConnectionLost = onConLost;
client.onMessageArrived = onMesArvd;

console.log("start connection...");
client.connect({onSuccess: onConnect});

问题是在尝试连接时出现以下错误,并且 onConnect 方法似乎没有连接,因为 console.log 没有出现:

WebSocket connection to 'ws://localhost:8080/mqtt' failed: Error during WebSocket handshake: Unexpected response code: 404

paho-mqtt.js 中以红色突出显示的代码如下:

new WebSocket(a, ["mqtt"])

我尝试将 mqtt 文件添加到正在运行 localhost 的文件夹中,但它只会更改响应代码(如果存在 mqtt 文件夹,则为 301,如果是文件,则为 200)。

添加项目自带的 mosquitto.conf:

pid_file /var/run/mosquitto.pid

persistence true
persistence_location /var/lib/mosquitto/

log_dest file /var/log/mosquitto/mosquitto.log

include_dir /etc/mosquitto/conf.d

listener 1883

listener 8080
protocol websockets

我注意到它与 paho/mqtt 客户端不在同一个文件夹中,而是在 ../dir2/setup/ 中。

我环顾四周,但没有看到任何人遇到此问题,因此我们将不胜感激任何帮助/指导。谢谢!

【问题讨论】:

  • 您确定您的 MQTT 代理已配置为侦听 websocket 连接吗?
  • 可以发布代理配置吗?
  • 贴出python代码,你展示的paho/JavaScript没有错
  • 添加了我的 conf 文件的代码及其目录的详细信息。还提到 paho 服务器的 onConnect 方法似乎没有连接,因为没有出现 console.log 调用。

标签: javascript websocket mqtt paho


【解决方案1】:

感谢 Santosh Balaji 为我指明了正确的方向。

我相信我需要在 pi 上 install mosquitto 然后将 mosquitto 安装目录中的 mosquitto.conf 文件更改为项目提供的文件。安装并确认我的 conf 正在使用后,js 和 Python 连接没有问题。

【讨论】:

    【解决方案2】:

    1) 启动mqtt前8080端口是否被其他进程占用。尝试使用 conf 文件启动 mosquitto。启动有问题会报错。

    mosquitto -c mosquitto.conf

    2) 尝试将端口更改为 9001,因为它是在 mqtt 中使用 websockets 的默认端口

    【讨论】:

      猜你喜欢
      • 2016-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-31
      • 2018-03-17
      • 2018-10-18
      相关资源
      最近更新 更多