检查某个MQTT响应并执行一些操作
Check for a certain MQTT response and do something
我有点卡在这里了。我想检查javascript中的特定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向服务器发送特定消息时,我没有得到特定的响应…
有人有什么见解吗?
消息对象不只是有效载荷,它有更多的字段,你需要的是有效载荷,这将是一个字符串,而不是一个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
}
})
相关文章:
- 单击元素两次后执行操作
- 如何在mvc3中执行操作而不更改当前页面
- jQuery onunload在按下按钮时执行操作
- 如果DOM发生更改,您将如何执行操作
- 在执行所有回调函数后执行操作
- JavaScript 对输入框执行操作
- 如何根据各种复选框状态执行操作
- 对页面重新加载 Jquery 执行操作
- jQuery如果大于则执行操作,但只执行一次
- ngStorage是否异步执行操作
- 如何逐一执行操作
- 只有当输入文本是example.com这样的域时才执行操作
- Javascript数学不起作用,更好的方式来执行操作
- Qubit在控制台中执行操作
- 停止setInterval,直到未执行操作
- 我如何使用javascript对音频标记执行操作
- JS 函数将对象作为输入,并返回一个对象,该对象对作为参数传递的对象执行操作
- 单击时执行操作多个具有相同类的 href
- 在 JavaScript 中传递指定秒数后如何执行操作
- 如何在对用户控件执行操作后调用 Web 服务