Node.js:在可读流通过管道传输到可写流时附加到可读流?

Node.js:在可读流通过管道传输到可写流时附加到可读流?,node.js,pipe,fs,nodejs-stream,nodejs-server,Node.js,Pipe,Fs,Nodejs Stream,Nodejs Server,我的服务器接收音频缓冲区的udp数据包。 我想将这些传入的块流到Google的文本到语音API 使用fs streams,是否有可能以这样的方式实现这一点 let stream = fs.createReadStream("empty-file-name").pipe(myOutputStreamToAPI); dgramserver.on('message', (msg, rinfo) => { stream.push(msg) } 在这个粗略的草

我的服务器接收音频缓冲区的udp数据包。 我想将这些传入的块流到Google的文本到语音API

使用fs streams,是否有可能以这样的方式实现这一点

let stream = fs.createReadStream("empty-file-name").pipe(myOutputStreamToAPI);

dgramserver.on('message', (msg, rinfo) => {
        stream.push(msg)
}
在这个粗略的草图中,我将创建一个空的(可能的?)流,或者在第一个接收到的数据包上创建流,当更多的数据包进来时,继续向流推进

这可能吗

除此之外,如何才能实现我所期望的结果?也就是说,在可读流通过管道传输到可写流之后,我希望在DISTINTC时间动态地添加到可读流中

这个问题也可以这样问: 如何从动态传入的udp数据包中创建可读流


谢谢

这能给你答案吗

const Stream = require('stream')

const readableStream = new Stream.Readable()
const writableStream = new Stream.Writable()

writableStream._write = (chunk, encoding, next) => {
    console.log(chunk.toString())
    next()
}

readableStream.pipe(writableStream)

readableStream.push('ping!')
readableStream.push('pong!')

writableStream.end()

谢谢你的回复。这看起来正是我需要的。但有两件事:1。除非我在“ping”“pong”之后将空值推送到readableStream,否则我会得到一个“readable.\u read not implemented error”,你知道在方法体中应该实现什么吗?2.你能给我解释一下write方法吗?你为什么要实现它?当我将可写流更改为process.stdout时,您的代码可以工作,因此它可能会满足我的需要,但是您能向我解释一下您的意图吗?首先,您需要在末尾推送(null),这会告诉源结束。对于第二个函数,应用程序代码不能直接调用write函数。它应该由子类实现,并且只能由内部可写类方法调用。例如:_write(chunk,encoding,callback){fs.write(this.fd,chunk,callback);}资源: