mqtt学习

mqtt客户端工具:mqttx 服务端:emqx

js实现简单的mqtt发布订阅:

var mqtt = require('mqtt');
var client = mqtt.connect('mqtt://:1883', {
username: process.env.TOKEN
});

client.on('connect', function() {
console.log('connected');
client.subscribe('v1/devices/me/rpc/request/+')
});

client.on('message', function(topic, message) {
console.log('request.topic: ' + topic);
console.log('request.body: ' + message.toString());
var requestId = topic.slice('v1/devices/me/rpc/request/'.length);
var msg = JSON.parse(message);
console.warn(msg);
var respmsg;
if (msg["method"] == "get_properties") {
respmsg = {"result": []};
msg["params"].forEach(v => {
respmsg.result.push({"siid": v.siid, "piid": v.piid, "value": "image.png", "code": 0})
});
}else if (msg["method"] == "set_properties") {
respmsg = {"result": []};
msg["params"].forEach(v => {
respmsg.result.push({"siid": v.siid, "piid": v.piid, "code": 0})
});
}else if (msg["method"] == "action") {
respmsg = {"result": {"code":0, "out": []}};
respmsg.result.code = 0;
msg["params"]["in"].forEach(v => {
respmsg.result.out.push({"piid": v.piid, "value": v.value})
});
}
console.warn(respmsg);
//client acts as an echo service
client.publish('v1/devices/me/rpc/response/' + requestId, JSON.stringify(respmsg));
});
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值