如何防止node.js中的流式http/s服务器内存泄漏?

如何防止node.js中的流式http/s服务器内存泄漏?,node.js,real-time,long-polling,Node.js,Real Time,Long Polling,我构建了一个流式https服务器,用于轮询后端服务,并将数据写入http客户端(如果可用)。特定https请求的代码如下所示: // check for new stuff periodically var timer = setInterval( function() { var resp = getResponseObject(); response.write(resp + "\n\r");

我构建了一个流式https服务器,用于轮询后端服务,并将数据写入http客户端(如果可用)。特定https请求的代码如下所示:

// check for new stuff periodically
var timer = setInterval( function() {
                   var resp = getResponseObject();
                   response.write(resp + "\n\r");
               }, 500);

// stop looping when the client disconnects
request.on('close', function() {
             clearInterval(timer);
             return;
             });
当客户端断开连接时,超时被清除,循环停止。但这是否总是会触发关闭事件?也在一个不太干净的客户端上断开连接?我担心为不再存在的连接留下循环。 知道这是否安全吗?其他方法


谢谢

我认为您不必担心“不干净”的断开连接——当客户端计算机突然从网络中删除时,您的服务器最终将收到TCP
FIN
数据包或ICMP目的地不可访问消息,这将触发服务器中的
close
事件,并允许您进行清理

可能资源更密集的是成百上千的客户端发送和接收数据的速度太慢,以至于所有网络套接字的文件描述符都用光了。如果客户端的连接速度低得离谱,则可能会迫使您的应用程序在数天或数周内以100字节块的形式在连接中传输兆字节