2015-09-20 70 views
0

我有點卡在這裏。我想在javascript中檢查特定的MQTT響應,並用它做一些事情,但是我的代碼失敗了。任何人都可以幫忙嗎?檢查某個MQTT響應並執行某些操作

應用程序收到JSON字符串如下:

[{"key":"volume","value":"4"}] 

我用這個代碼來檢查的消息:

client.on('message', function (topic, message) { 
    //message = JSON.parse(message); 
    console.log('Data: ' + message); 
    var strin = [{key:'volume', value: 4}] 
    if(message == strin) { 
    console.log('Specific'); 
    }else { 
    // test 
    } 
}) 

但只要我通過POST發送特定郵件服務器,我沒有得到具體的迴應...

有人在這裏有一些見解?

回答

0

消息對象不只是有效載荷,它有更多的領域,你需要的是有效載荷,這將是一個字符串,而不是一個JSON對象入手:

client.on('message', function (topic, message) { 
    var payload = JSON.parse(message.payloadString); 
    console.log('Data: ' + payload); 
    var strin = [{key:'volume', value: 4}]; 
    if(payload == strin) { 
    console.log('Specific'); 
    } else { 
    // test 
    } 
}) 

而且它不是很容易做到的Javascript 對象比較,快速和骯髒的解決方案接縫如下:

client.on('message', function (topic, message) { 
    var payload = JSON.parse(message.payloadString); 
    console.log('Data: ' + payload); 
    var strin = [{key:'volume', value: 4}]; 
    if(JSON.stringify(payload) == JSON.stringify(strin)) { 
     console.log('Specific'); 
    } else { 
     // test 
    } 
}) 
+0

謝謝回覆。我現在看到,我的方法不是萬無一失的。我會測試你的解決方案:) – bartpeperkamp

相關問題