我有类似以下的代码。第一次可以正常运行。之后,我得到一个write after end
。我了解问题所在,但不知如何正确解决。到目前为止,我尝试打开管道并使用Half Open Connections。我觉得自己没有想法和例子。
server = require('net').createServer (input) ->
input
.pipe(someTransformObjectStream)
.pipe(foo)
.pipe(bar)
堆栈跟踪:
events.js:72
throw er; // Unhandled 'error' event
Error: write after end
at writeAfterEnd (_stream_writable.js:130:12)
at someTransformObjectStream.Writable.write (_stream_writable.js:178:5)
at write (_stream_readable.js:583:24)
at flow (_stream_readable.js:592:7)
at Socket.pipeOnReadable (_stream_readable.js:624:5)
at Socket.EventEmitter.emit (events.js:92:17)
at emitReadable_ (_stream_readable.js:408:10)
at emitReadable (_stream_readable.js:404:5)
at readableAddChunk (_stream_readable.js:165:9)
at Socket.Readable.push (_stream_rea
问题是您将相同的转换重新用于新连接,但是已经结束。您需要为每个连接创建新的转换
server = require('net').createServer (input) ->
input
.pipe(createSomeTransformObjectStream())
.pipe(createFoo())
.pipe(createBar())
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句