我有以下代码,它使用 mqtt 在指定的 url 中发布 json 数据。初始数据是从 http 检索的。
var request = require('request');
var JSONStream = require('JSONStream');
var es = require('event-stream');
var mqtt = require('mqtt');
request({url: 'http://isaacs.couchone.com/registry/_all_docs'})
.pipe(JSONStream.parse('rows.*'))
.pipe(es.mapSync(function (data) {
console.info(data);
var client = mqtt.createClient(1883, 'localhost');
client.publish('NewTopic', JSON.stringify(data));
client.end();
return data;
}))
以下是订阅通过mqtt发布的数据(在上面的代码中)的订阅者代码
var mqtt = require('mqtt');
var client = mqtt.createClient();
client.subscribe('NewTopic');
client.on('message', function(topic, message) {
console.info(message);
});
在上面的代码中,我在'message'中获取指定url中的所有json数据。我需要从接收到的数据中提取'id'和'value'并将其作为单个JSON对象并需要将其发布到mqtt,这样另一个客户端只能将“id”和“value”订阅为 json 数据。