多个流侦听器的流背压表现如何

  • 本文关键字:侦听器 node.js stream
  • 更新时间 :
  • 英文 :


假设我有一个可读流sourceStream,它每秒生成约32KB的数据。我想通过管道将这些数据传输到多个HTTP客户端的可写流。

客户端A有一个很好的互联网连接,可以跟上我的流数据。客户端B通过其可靠的14.4kbps美国Robotics调制解调器连接。

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

这些是TCP连接,Node.js将能够知道客户端何时落后。我知道Streams中内置了少量缓冲区,但很快缓冲区就会满,Node.js将不得不对sourceStream生成的所有数据采取措施。

当客户端A继续按预期获取数据时,它会为客户端B无限期缓冲吗?或者,Node是否会暂停流,直到客户端B能够赶上,这意味着客户端A也会暂停此流?或者,还会发生其他事情吗?

它的速度和最慢的读取器一样慢。来源:https://github.com/isaacs/stream-multiplexer#the-问题

大多数时候,你宁愿读者的阅读速度不超过最慢的作者所能适应的速度。在Node v0.10中,它就是这样工作的。

相关内容

  • 没有找到相关文章

最新更新