微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

node.js – 流背压如何与多个流侦听器一起运行?

假设我有一个可读的流sourceStream,它每秒生成~32KB的数据.我想将此数据传输到多个HTTP客户端的可写流.

客户端A具有良好的互联网连接,可以跟上我的流数据.客户端B连接在他/她可靠的14.4kbps US 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-problem

Most of the time,you’d prefer that the reader goes no faster than the slowest writer can accomodate. In Node v0.10,this is how it works.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐