Mosquitto 和简单的 Paho JS 客户端
Mosquitto and simple Paho JS Client
我正在尝试设置一个简单的 mqtt 代理并从网页访问它。我的运气几乎是0。
我已经下载了 mosquitto 2.0.14 并 运行ning。这是我的配置文件:
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
我一直很难找到有效的更新教程。我的最终目标是创建一个反应应用程序,通过 websockets 连接到 mqtt 代理并接收消息以更新 redux 中的状态。
问题:
我如何让js客户端连接?
如何为蚊子设置主机?我可以使用像 myhost.local 这样的 diff 主机吗?或者我是否卡在使用 127.0.0.1 或我在 运行 ipconfig(我在 windows 上)时看到的任何内容?
您需要添加 allow_anonymous true
以允许用户在不提供 username/password 的情况下进行连接。
这是 v2.0 中引入的一组更改的一部分,用于改进 mosquitto 开箱即用的默认安全状态。
我正在尝试设置一个简单的 mqtt 代理并从网页访问它。我的运气几乎是0。
我已经下载了 mosquitto 2.0.14 并 运行ning。这是我的配置文件:
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
我一直很难找到有效的更新教程。我的最终目标是创建一个反应应用程序,通过 websockets 连接到 mqtt 代理并接收消息以更新 redux 中的状态。
问题: 我如何让js客户端连接? 如何为蚊子设置主机?我可以使用像 myhost.local 这样的 diff 主机吗?或者我是否卡在使用 127.0.0.1 或我在 运行 ipconfig(我在 windows 上)时看到的任何内容?
您需要添加 allow_anonymous true
以允许用户在不提供 username/password 的情况下进行连接。
这是 v2.0 中引入的一组更改的一部分,用于改进 mosquitto 开箱即用的默认安全状态。