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

问题描述

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

使用 fs 流,是否有可能以类似这样的方式实现这一目标?:

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

dgramserver.on('message',(msg,rinfo) => {
        stream.push(msg)
}

在这个粗略的草图中,我会创建一个空的(可能的?)流,或者在第一个收到的数据包上创建流,随着更多的数据包进入,继续推送到流。

这可能吗?

还有什么办法可以达到我想要的结果?也就是说,在将可读流通过管道传输到可写流之后,我希望在不同的时间动态地添加到可读流中。

这个问题也可以这样问: 如何从动态传入的 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()