2016-08-17 6 views
0

Привет, я пытаюсь использовать сервер mosquitto в Raspberry Pi, используя MQTT для отправки json-данных из r-pi в окно.Как подключить сервер mosquitto между малиной pi и windows7?

Прежде чем использовать сервер mosquitto, я использовал «test.mosquitto.org». Он работал хорошо.

Я имею в виду, что он отсылал некоторые данные json в окна.

Однако, когда я повернулся сервер mosquitto в г-пи на окнах, положить какое-то сообщение об ошибке, которое

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

Не могли бы вы рассказать мне, что это происходит, и это исправить?

это Javascript на окна коды (я использую питон в Raspberry Pi)

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); 
} 
    }); 

Я использую два г-пи, который является суб-borker и главным брокером.

Суб-брокер просто отправляет данные датчика как json, а основной брокер контролирует данные json и отправляет их снова как json в windows.

Я думаю, что мое письмо довольно сложно понять.

Короче говоря, я не хочу использовать «test.mosquitto.org» в r-pi, поэтому я запускаю сервер mosquitto в r-pi для отправки данных в окно, однако в окне есть ошибка.

ответ

0

Сначала вам нужно удалить линию, подключающуюся к test.mosquitto.org, так как это просто путает вещи.

Во-вторых, вы пропустили mqtt:// с URL-адреса локального экземпляра москита. Ошибка указывает, что он не может найти протокол из 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); 
    } 
}); 

 Смежные вопросы

  • Нет связанных вопросов^_^