假设我有一个可读的流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 举报,一经查实,本站将立刻删除。