我有一个设备通过 mqtt 将数据字符串发送到我在 ubuntu 上的 mosquitto 代理我目前使用 node-red 然后接收这些字符串并使用 javascript 函数 node 来完成我需要的所有其他事情,数据转换,插入查询等,但只有一件事我正在努力解决我想摆脱 node-red 所以我只有纯代码的文件,我已经尝试了 npm 网站上提供的代码,但我需要一个白痴指南哈哈有没有人知道我可以在哪里查看或任何人可以帮我 ?我所有的 html 文件当前都从 apache 服务器显示
我目前对 mqtt 的设置是在 ubuntu 上运行的蚊子我已经在配置文件中启用了 websockets 和 1883
蚊子配置
listener 1883
listener 1884
protocol websockets
pid_file /var/run/mosquitto.pid
persistence true
persistence_location /var/lib/mosquitto/
log_dest file /var/log/mosquitto/mosquitto.log
include_dir /etc/mosquitto/conf.d
我试过的 mqtt 代码:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/paho-mqtt/1.0.1/mqttws31.js" type="text/javascript"></script> <script type="text/javascript">
var wsbroker = "localhost"; //mqtt websocket enabled broker
var wsport = 1883 // port for above
var client = new Paho.MQTT.Client(wsbroker, wsport,
"myclientid_" + parseInt(Math.random() * 100, 10));
client.onConnectionLost = function (responseObject) {
console.log("connection lost: " + responseObject.errorMessage);
};
client.onMessageArrived = function (message) {
console.log(message.destinationName, ' -- ', message.payloadString);
};
var options = {
timeout: 3,
onSuccess: function () {
console.log("mqtt connected");
client.subscribe('/tracked', {qos: 1});
},
onFailure: function (message) {
console.log("Connection failed: " + message.errorMessage);
}
};
function init() {
client.connect(options);
}
</head>
<body onload="init();">
</body>
所以正如评论中提到的那样。
您正在尝试连接到端口 1883,这是本机 MQTT 端口。
要从网页使用 Javascript 客户端,您需要通过 Websocket 使用 MQTT,您已在端口 1884 上添加了 Websocket 侦听器。
所以你需要编辑代码如下:
var wsbroker = "localhost"; //mqtt websocket enabled broker
var wsport = 1884 // Websocket port for above
var client = new Paho.MQTT.Client(wsbroker, wsport,
"myclientid_" + parseInt(Math.random() * 100, 10));
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句