stream式背压如何与多个stream式听众一起工作?

假设我有一个可读的stream, sourceStream ,每秒产生大约32KB的数据。 我想pipe这个数据到多个HTTP客户端的可写stream。

客户端A有一个很好的互联网连接,可以跟上我的stream数据。 客户端B连接在他/她可信赖的14.4kbps美国机器人调制解调器上。

 sourceStream.pipe(resClientA); // Pipe to Client A's writable stream sourceStream.pipe(resClientB); // Pipe to Client B's writable stream 

这些是TCP连接,Node.js将能够知道客户端何时退出。 我知道在Streams里面有less量的缓冲,但是在缓冲区满了之前不久,Node.js将不得不对sourceStream产生的所有数据做些什么。

它会无限期地缓冲客户端B,而客户端A继续按预期获取数据吗? 或者,Node是否会暂停stream,直到客户端B可以赶上,这意味着这个stream也暂停了客户端A? 或者,还会发生其他事情吗?

它和最慢的读者一样慢。 来源: https : //github.com/isaacs/stream-multiplexer#the-problem

大多数时候,你宁愿读者不会比最慢的作家能够容纳的速度快。 在节点v0.10中,这是如何工作的。