【发布时间】:2017-12-12 14:09:55
【问题描述】:
在我的 Node.JS 应用程序中,我需要通过 TCP 连接递归地执行 writer 函数。我就是这样做的:
var net = require('net');
const commonConfig = require('../config.common')
var server = net.createServer(function(socket) {
let writer = () => {
socket.write(Date.now() + '\n\r')
socket.pipe(socket)
setTimeout(writer, 1000)
}
writer()
});
server.listen(commonConfig.TCP_PORT, commonConfig.TCP_ADDR);
但是,我收到以下警告:
(node:4497) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 end listeners added. Use emitter.setMaxListeners() to increase limit
(node:4497) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 finish listeners added. Use emitter.setMaxListeners() to increase limit
(node:4497) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 unpipe listeners added. Use emitter.setMaxListeners() to increase limit
(node:4497) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 drain listeners added. Use emitter.setMaxListeners() to increase limit
(node:4497) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 data listeners added. Use emitter.setMaxListeners() to increase limit
(node:4497) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 error listeners added. Use emitter.setMaxListeners() to increase limit
(node:4497) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 close listeners added. Use emitter.setMaxListeners() to increase limit
这些是由什么引起的?如何在不破坏我的功能的情况下解决这些问题?
【问题讨论】:
标签: node.js sockets recursion memory-leaks