实现双工流
Duplex 流是同时实现 Readable 和 Writable 的流,例如 TCP 套接字连接。
因为 JavaScript 不支持多重继承,所以扩展了 stream.Duplex 类以实现 Duplex 流(与扩展 stream.Readable 和 stream.Writable 类相反)。
stream.Duplex 类原型继承自 stream.Readable 并寄生于 stream.Writable,但由于覆盖了 stream.Writable 上的 Symbol.hasInstance,instanceof 将适用于两个基类。
自定义的 Duplex 流必须调用 new stream.Duplex([options]) 构造函数并实现 readable._read() 和 writable._write() 方法。
A Duplex stream is one that implements both Readable and
Writable, such as a TCP socket connection.
Because JavaScript does not have support for multiple inheritance, the
stream.Duplex class is extended to implement a Duplex stream (as opposed
to extending the stream.Readable and stream.Writable classes).
The stream.Duplex class prototypically inherits from stream.Readable and
parasitically from stream.Writable, but instanceof will work properly for
both base classes due to overriding Symbol.hasInstance on
stream.Writable.
Custom Duplex streams must call the new stream.Duplex([options])
constructor and implement both the readable._read() and
writable._write() methods.