问题描述
这是我的代码片段,用于转换 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 (将#修改为@)