2016-08-17 5 views
0

안녕하세요, MQTT를 사용하여 r-pi에서 json 데이터를 창에 보내는 Raspberry Pi의 모스 킷토 서버를 사용하려고합니다.라즈베리 파이와 windows7 사이 모스 퀴토 서버에 어떻게 연결할 수 있습니까?

모스 킷토 서버를 사용하기 전에 "test.mosquitto.org"를 사용했습니다. 제대로 작동했습니다.

내 말은 일부 json 데이터를 창에 보냈다는 의미입니다.

그러나, 나는

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

당신이 그것을에 가서 고칠 무엇 말해 주시겠습니까 일부 오류 메시지를 넣어 창문에 R-PI에 mosquitto 서버를 설정하면?

이 내가 하위 borker 및 주요 브로커 두 개의 R-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); 
} 
    }); 

창 코드에 자바 스크립트 (나는 라즈베리 파이에 파이썬을 사용)입니다.

하위 브로커는 json으로 일부 센서 데이터를 보내고 주 브로커는 json 데이터를 제어하고 json으로 다시 Windows로 전송합니다.

필자의 글은 이해하기가 상당히 복잡하다고 생각합니다.

즉, r-pi에서 "test.mosquitto.org"를 사용하지 않으려 고 r-pi의 모스 킷토 서버를 켜서 데이터를 창에 보내면 창에 오류가 표시됩니다.

답변

0

먼저 test.mosquitto.org에 연결하는 줄을 제거해야합니다.

두 번째로 모스투토의 로컬 인스턴스에 대한 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); 
    } 
});