1

我有以下代码,它接受来自 url 的数据并打印 json 格式的数据。我想使用 node.js 将相同的数据发布到 mqtt。是否有相同的示例代码?

`var request = require('request')
var JSONStream = require('JSONStream')
`var es = require('event-stream')` 
 `request({url: 'http://isaacs.couchone.com/registry/_all_docs'})
`.pipe(JSONStream.parse('rows.*'))
 .pipe(es.mapSync(function (data) {
 console.log(data);
 console.error(data)
 return data
 }))
4

2 回答 2

1

只需为 mqtt 使用 node.js 库,例如 MQTT.js https://github.com/adamvr/MQTT.js

您还可以通过安装 mosca https://github.com/mcollina/mosca在 node.js 中运行自己的多协议代理

于 2014-07-21T15:18:18.533 回答
1

您可以使用 mqtt 节点库MQTT.js

您当前的代码变成了这样:

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.log(data);
        console.error(data);

        //MQTT publish starts here
        var client = mqtt.createClient(1883, 'localhost');
        client.publish('demoTopic', JSON.stringify(data));
        client.end();

        return data;
 }))

上面的代码假设代理在本地机器的 1883 端口上运行。

于 2014-07-22T21:52:32.183 回答