websocket Mosquitto和简单Paho JS客户端

dddzy1tm  于 2022-12-23  发布在  其他
关注(0)|答案(1)|浏览(162)

我试图得到一个简单的mqtt经纪人设置和访问它从一个网页。我有几乎0运气。
我已经下载并运行了mosquito 2.0.14,下面是我的配置文件:

listener 1883
listener 9001
protocol websockets

当我运行mosquitto -c mosquitto_conf -v时,将生成以下日志

1637948154: mosquitto version 2.0.14 starting
1637948154: Config loaded from mosquitto.conf.
1637948154: Opening ipv6 listen socket on port 1883.
1637948154: Opening ipv4 listen socket on port 1883.
1637948154: Opening websockets listen socket on port 9001.
1637948154: mosquitto version 2.0.14 running

下面是我的html文件,我只需要在浏览器中打开它,它使用的是Paho的js客户端。

<html>
<head>

<script src="https://cdnjs.cloudflare.com/ajax/libs/paho-mqtt/1.0.1/mqttws31.min.js" type="text/javascript"></script>
<script type="text/javascript" language="javascript">
    var mqtt;
    var reconnectTimeout = 2000;
    var host = "192.168.1.94";
    var port = 9001;

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

    function mqttConnect() {
        console.log("Connecting to " + host + ":" + port);
        mqtt = new Paho.MQTT.Client(host, port, "clientjs");
        var options = {
            timeout: 3,
            onSuccess: onConnect,
        };

        mqtt.connect(options);
    }
</script>

</head>

<body>
    <script>
        mqttConnect();
    </script>
</body>
</html>

我正在使用这个网站上的指南:http://www.steves-internet-guide.com/using-javascript-mqtt-client-websockets/
它在浏览器中显示以下控制台错误:

WebSocket connection to 'ws://127.0.0.1:9001/mqtt' failed

我一直很难找到一个更新的教程,我的最终目标是创建一个react应用程序,通过websockets连接到mqtt代理,并接收消息以更新redux中的状态。
问题:我如何让js客户端连接?我如何设置mosquito的主机?我可以使用像myhost.local这样的diff主机吗?或者127.0.0.1当我运行ipconfig时(我在windows上),我是否被困在使用www.example.com或任何我看到的东西?

dwbf0jvd

dwbf0jvd1#

您需要添加allow_anonymous true以允许用户在不提供用户名/密码的情况下进行连接。
这是v2.0中引入的一系列更改的一部分,旨在改进mosquito的默认安全状态。

相关问题