Saya memerlukan bantuan untuk memahami cara kerja streaming di NodeJS
Saya jelaskan, saya perlu menulis modul yang memanggil proses UNIX (dengan spawn
) dan saya ingin mengarahkan stdout
dari proses ini ke Aliran yang Dapat Dibaca.
Saya ingin perilaku ini exports
Aliran yang Dapat Dibaca dan mengizinkan modul lain untuk membacanya.
Untuk melakukan ini, saya telah menulis sedikit kode:
var spawn = require('child_process').spawn
var Duplex = require('stream').Duplex;
var stream = new Duplex;
var start = function() {
ps = spawn('mycmd', [/*... args ...*/]);
ps.stdout.pipe(stream);
};
exports.stream = stream;
exports.start = start;
Tetapi jika saya menggunakan modul ini, saya memberikan pengecualian yang mengatakan bahwa aliran tidak mengimplementasikan metode _read.
Bisakah Anda membantu saya mengatasi masalah ini?
Terima kasih sebelumnya.
[EDIT] Saya telah mencoba solusi membuat objek Stream, tetapi tidak berhasil, berikut kodenya:
var spawn = require('child_process').spawn;
var Stream = require('stream');
var ps = null;
var audio = new Stream;
audio.readable = audio.writable = true;
var start = function() {
if(ps == null) {
ps = spawn('mycmd', []);
ps.stdout.pipe(stream);
}
};
var stop = function() {
if(ps) {
ps.kill();
ps = null;
}
};
exports.stream = stream;
exports.start = start;
exports.stop = stop;
Tetapi ketika saya mencoba mendengarkan streaming, saya menemukan kesalahan baru:
_stream_readable.js:583
var written = dest.write(chunk);
^
TypeError: Object #<Stream> has no method 'write'