如何在 raspberry pi 和 windows7 之间连接 mosquitto 服务器?

How can I connect mosquitto server between raspberry pi and windows7?

你好,我正在尝试在 Raspberry Pi 中使用 mosquitto 服务器,使用 MQTT 将 json 数据从 r-pi 发送到 window。

在我使用 mosquitto 服务器之前,我使用 "test.mosquitto.org" 它运行良好。

我的意思是它发送了一些 json 数据到 windows。

但是,当我在 r-pi 中打开 mosquitto 服务器时,windows 显示了一些错误消息

opts.protocol = opts.protocol.replace, cannot read property 'replace' of null.

你介意告诉我这是怎么回事并修复它吗?

这是 javascript 上的 windows 代码(我在 raspberry pi 中使用 python)

    console.log("start");
    var mqtt = require('mqtt');
    var client = mqtt.connect('mqtt://test.mosquitto.org');
    var client = mqtt.connect('192.168.1.2'); // IP of main-broker

    client.on('connect', function () {
        client.subscribe('sensor_A');
    });

    client.on('message', function (topic, message) {
        console.log("Topic: " + topic);
        var parsedData = JSON.parse(message);
        var dataLen = parsedData.length
        console.log('dataLen: ' + dataLen);

        for (var i = 0; i < dataLen; i++) {
            var data = JSON.parse(parsedData[i]);
            console.log('data ' + i + ': ' + data.time + ' ' + data.tem + ' ' + data.hum + ' ' + data.gas);
}
    });

我正在使用两个 r-pi,它是 sub-borker 和 main-broker。

子代理只发送一些传感器数据作为 json,主代理控制 json 数据并再次作为 json 发送到 windows。

我觉得我的文比较难理解。

简而言之,我不想在 r-pi 中使用 "test.mosquitto.org",所以我在 r-pi 中打开 mosquitto 服务器以将数据发送到 window,但是,出现错误window.

首先,您需要删除连接到 test.mosquitto.org 的线,因为那样只会造成混淆。

其次,对于 mosquitto 的本地实例,您错过了 URL 中的 mqtt://。错误指出它无法从 url.

中找到协议
console.log("start");
var mqtt = require('mqtt');
var client = mqtt.connect('mqtt://192.168.1.2'); // IP of main-broker

client.on('connect', function () {
    client.subscribe('sensor_A');
});

client.on('message', function (topic, message) {
    console.log("Topic: " + topic);
    var parsedData = JSON.parse(message);
    var dataLen = parsedData.length
    console.log('dataLen: ' + dataLen);

    for (var i = 0; i < dataLen; i++) {
        var data = JSON.parse(parsedData[i]);
        console.log('data ' + i + ': ' + data.time + ' ' + data.tem + ' ' + data.hum + ' ' + data.gas);
    }
});