【问题标题】:Paho MQTT Javascript client version 1.1.0 problems connectingPaho MQTT Javascript 客户端版本 1.1.0 连接问题
【发布时间】:2020-05-01 11:23:57
【问题描述】:

我无法从 Paho MQTT Javascript 客户端版本 1.1.0 连接到我的 Mosquitto 代理。我之前使用的是 1.0.1 版本,但我决定更改,因为我需要使用通配符,我认为它们在 1.0.1 版本中不支持,因为它们不起作用。

为了在 1.0.1 版中连接,我这样做了:

host=192.168.1.42
port=9873
id="whatever"
mqtt = new Paho.MQTT.Client(host,port,id);

在 1.1.0 版本中,这种连接方式不起作用。看到here的解释,就这样试了一下:

mqtt = new Paho.Client("wss://192.168.1.42/mqtt",id);

这会导致错误提示 Firefox 无法建立到 wss://192.168.1.42/mqtt 的连接。

使用 1.1.0 版的正确连接方式是什么?

【问题讨论】:

    标签: javascript websocket mqtt paho


    【解决方案1】:

    通配符订阅适用于任何版本的 Paho Javascript 客户端。但无论如何。

    docs 中所述,客户端构造函数host 字段可以是以下之一:

    消息服务器的地址,作为完全限定的 WebSocket URI,作为 DNS 名称或点分十进制 IP 地址。

    您的 WebSocket 侦听器似乎使用了非标准端口(9873 与 443),因此您需要在 URI 中包含端口号。

    mqtt = new Paho.Client("wss://192.168.1.42:9873/mqtt",id);
    

    【讨论】:

    • 我已经设法使用它进行连接,谢谢。但是,客户端几乎立即断开连接。在代理上,会为该客户端记录一个套接字错误。可能是连接的一些错误选项设置吗?我将编辑我的问题,包括那个。
    • 这可能应该是一个单独的问题,但这很可能是因为您有一个固定的客户端 ID,这在网络世界中不起作用。每个打开页面的浏览器都需要一个唯一的客户端 ID
    • 客户端 ID 是唯一的,我使用的是 php 会话 ID
    • 好的,连接失败应该还是一个单独的问题。此答案是您所提问题的解决方案。
    猜你喜欢
    • 2016-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多