通过Web套接字将网页连接到MQTT代理

艾哈迈德·穆尼尔(Ahmed Munir)

我在cloudMQTT创建了mqtt代理,这是我得到的有关端口和服务器的信息

点击查看端口图片

现在,我编写了该代码以运行连接到该代理并发送世界问候的网页。

<html>
   <head>
      <title>JavaScript MQTT WebSocket Example</title>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/paho-mqtt/1.0.1/mqttws31.js" type="text/javascript">
     </script>
     <script type = "text/javascript" language = "javascript">
        var mqtt;
        var reconnectTimeout = 2000;
        var host="m23.cloudmqtt.com"; //change this
        var port= 38788;

        function onConnect() {
      // Once a connection has been made, make a subscription and send a message.

        console.log("Connected ");
        //mqtt.subscribe("sensor1");
        message = new Paho.MQTT.Message("Hello world");
        message.destinationName = "orange1";
        mqtt.send(message);
      }
      function MQTTconnect() {
        console.log("connecting to "+ host +" "+ port);
        mqtt = new Paho.MQTT.Client(host,port,"clientjs");
        //document.write("connecting to "+ host);
        var options = {
            timeout: 3,
            onSuccess: onConnect,

         };

        mqtt.connect(options); //connect
        }

      </script>
   </head>
     <body>
   <h1>Main Body</h1>
    <script>
    MQTTconnect();
    </script>
   </body>
</html>

每次我打开该页面并打开console.js时,我都会收到该问题消息:

出现在console.log上的错误消息

(这是出现在我的console.log上的错误列表,以帮助任何可以看到图像的人。)WebSocket连接到'ws://m23.cloudmqtt.com:38788 / mqtt'失败:WebSocket握手时出错:net: :ERR_CONNECTION_RESET mqttws31.js:979

Paho.MQTT.ClientImpl._doConnect @ mqttws31.js:979

Paho.MQTT.ClientImpl.connect @ mqttws31.js:849

Client.connect @ mqttws31.js:1799

MQTTconnect @ websockets-1.htm:31

(匿名)@ websockets-1.htm:39

WebSocket与'ws://m23.cloudmqtt.com:38788 / mqtt'的连接失败:WebSocket握手期间出错:net :: ERR_CONNECTION_RESET mqttws31.js:977

Paho.MQTT.ClientImpl._doConnect @ mqttws31.js:977

Paho.MQTT.ClientImpl._disconnected @ mqttws31.js:1459

Paho.MQTT.ClientImpl._on_socket_error @ mqttws31.js:1347

(匿名)@ mqttws31.js:157

我试图更改端口,但我遇到了同样的问题。我该如何解决类似的问题?如果我尝试连接到https://test.mosquitto.org/,我会遇到同样的问题吗?怎么也可以解决?

哈迪尔布

您需要设置标志以启用SSL(如端口图片所示,Websockets需要TLS)

var options = {
  timeout: 3,
  onSuccess: onConnect,
  useSSL: true
};

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章