2013-12-16 2 views
5

стандартного вводу Я хотел бы, чтобы труба некоторых потоковые данные feedgnuplot, чтобы Graph его в реальное времятрубопроводов к мицелию

следующих работ:

// index.js 
readableStream.pipe(process.stdout) 

// in bash 
$ node index.js | feedgnuplot --stream 

Но следующее не работает (и это то, что я хочу сделать работу):

// index.js 
var feedgnuplot = require('child_process').spawn('feedgnuplot', ['--stream']) 
readableStream.pipe(feedgnuplot.stdin) 

//in bash 
$ node index.js 

Я получаю сообщение об ошибке ECONNRESET

EDIT: пример читаемый поток по запросу:

var util = require('util') 
var Readable = require('stream').Readable 

util.inherits(SomeReadableStream, Readable) 

function SomeReadableStream() { 
    Readable.call(this) 
} 

SomeReadableStream.prototype._read = function() { 
    this.push(Math.random().toString()+'\n') 
} 

var someReadableStream = new SomeReadableStream() 

someReadableStream.pipe(process.stdout) 
+0

Можете ли вы дать нам пример входного файла/читаемого потока, чтобы мы могли попытаться воспроизвести вашу проблему? Кроме того, каковы ваши версии gnuplot и feedgnuplot? –

+0

@PaulMougel Я добавил пример читаемого потока. Я запускаю gnuplot 4.6 и feedgnuplot у мастера – stanm87

+0

Хорошо ... Ваш пример кода работает для меня (gnuplot 4.6, feedgnuplot от master, nodes v0.10.21, Mac Os 10.9), без ошибки ECONNRESET. Какова ваша ОС и версия Node.js? –

ответ

0

Для меня, с Node.js v0.10.26, ваш скрипт работает отлично:

Script index.js:

var util = require('util') 
var Readable = require('stream').Readable 

util.inherits(SomeReadableStream, Readable) 

function SomeReadableStream() { 
    Readable.call(this) 
} 

SomeReadableStream.prototype._read = function() { 
    this.push(Math.random().toString()+'\n') 
} 

var someReadableStream = new SomeReadableStream() 

var feedgnuplot = require('child_process').spawn('feedgnuplot', ['--stream']) 
someReadableStream.pipe(feedgnuplot.stdin) 

И вызов если с терминала nodejs index.js.

Смежные вопросы