在 NodeJS 的最新几个版本(写作时为 v0.10.X)中,Streams API 进行了受欢迎的重新设计,我现在想开始使用它。
我想用一个实现协议的对象来包装套接字的输入和输出。
所谓的 Duplex 接口,似乎就是任何可读可写的流(如套接字)。
尚不清楚 Duplexes 是否应该像 A 或 B,或者是否无关紧要。
+---+ +---+
-->| A |--> | |-->
+---+ | B |
| |<--
+---+
对于具有两个可写和两个可读对象的正确代码结构/接口是什么?
+--------+ +----------+ +----
| r|-->|w r|-->|w
| socket | | protocol | | rest of app
| w|<--|r w|<--|r
+--------+ +----------+ +----
上图的问题是protocol
对象需要两个单独的read
方法和两个write
方法。
在我的脑海中,我可以让协议产生“左”和“右”双工对象,或“输入”和“输出”双工对象(以不同的方式对其进行切片)。
这些是首选方式,还是有更好的解决方案?