如何从 MQTT javascript 客户端连接到 Mosquitto 服务器

How to connect from MQTT javascript client to Mosquitto Server

我尝试将 eclipse paho javascript 客户端连接到本地托管的 mqtt mostquitto 服务器,但出现以下错误:

1515729801: New connection from 127.0.0.1 on port 1883.
1515729801: Socket error on client <unknown>, disconnecting.

代码:

<html>
    <head>
        <meta charset="utf-8">
        <title>kajshdkjas</title>
        <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/paho-mqtt/1.0.1/mqttws31.js"></script>
        <script type="text/javascript" language="javascript">
            var mqtt;
            var reconnectTimeout = 2000;
            var host = "127.0.0.1";
            var port = 1883;

            function onConnect() {
                console.log("Connected");
                message = new Paho.MQTT.Message("Hello World");
                message.destinationName = "sensor1";
                mqtt.send(message);
            }

            function MQTTconnect() {
                console.log("Connected to " + host + " " + port);
                mqtt = new Paho.MQTT.Client(host, port, "Clientjs");
                var options = {
                    timeout: 3,
                    onSuccess: onConnect,
                };
                mqtt.connect(options);
            }
        </script>
    </head>
    <body>
        <script type="text/javascript">MQTTconnect();</script>
    </body>
</html>

我尝试在正常情况下和在我的 apache 服务器中托管它。我哪里做错了?

您正在尝试使用 Javascript 客户端从网页连接到本机 MQTT 端口。这将不起作用,您只能从网页内连接到 websocket 端点。

您需要确保 Mosquitto 配置为侦听 websocket 连接(很可能在与 1883 不同的端口上),然后将正确的端口号放入您的页面。