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.

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...