在我的程序中,我有一个可读的Stream
source
,它从共享的字节数据流中发出数据事件。然后我解释数据以提取Buffer
对象,然后将它们传递给适当的函数。将 s传递给我的程序其余部分的最优雅的方法Buffer
似乎是使用可读Stream
对象。这样我的函数就可以像独立流一样读取流。
这是我当前的代码:
var stream = new stream.Stream()
stream.readable = true
stream.pause = function () {
source.pause()
}
stream.resume = function () {
source.resume()
}
stream.readable = true
// in a loop, read the data from source stream, dissect the parts we want,
// and emit Buffer objects to the stream's data event.
我该如何实施setEncoding
?
编辑:我认为答案与stream.js源代码中的这一行有关
Stream.Readable = require('_stream_readable');
此外,正确的答案可能是
- 替换
new stream.Stream
为new stream.Readable
和 - 替换
stream.emit('data', buffer)
为
或。stream.onread(buffer)
_stream.push(buffer)
问题是,我不知道是哪一个。
编辑:stream.Readable
在 0.8 版中不可用。它在 0.9 测试版中可用,并且将在 v0.10 稳定版中可用。这个问题的理想答案将描述 0.8- 解决方案和 0.9+ 解决方案。