如何解决销毁 NodeJs 流导致客户端断开连接
这是我的代码片段,用于转换 TCP 流并写入 Websocket 双工连接。一个单独的模块写入 transform0
。
stream.pipeline(
transform0,// Append some text
duplex,// Websocket duplex
(err) => {
if (err) {
logger.error(`${src} Streaming pipeline error. ${err}`)
}
}
)
transform0.on('end',() => {
transform0.destroy()
logger.info(`${src} Transformation ended.`)
}).on('error',(err) => {
transform0.destroy()
logger.error(`${src} Transformer error. ${err.message}`)
})
当 transform0.end()
发生时,流停止。但是,websocket 客户端 (wscat
) 断开连接。如果我删除 transform0.destroy()
调用,则客户端不会断开连接。
我不清楚终止流时的最佳做法是什么 - unpipe
后跟一个 destroy
、unpipe
或 destroy
等等。我主要关心的是是我收到的这个错误(在相关但不同的情况下) - (node) warning: possible EventEmitter memory leak detected. 11 listeners added.
我不知道 11 的计数是如何达到的。我希望避免使用 destroy()
达到计数,但这会导致客户端断开连接。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。