在我的浏览器中,我显示了很多拇指。如果拇指不可见(在视口外),我将src设置为'' (空字符串)。当它在viewPort中时,我设置了正确的src。
如果用户使用滚动条,则浏览器会取消尚未下载的拇指下载。
但是在服务器端,一些请求变成了僵尸'并且可以填充套接字池(maxSockets)。超时后,服务器将终止这些套接字并重新启动未下载的一堆拇指。
所以我需要检测浏览器是否取消了请求才能结束响应。我尝试了许多事件,没有结果。
function(req, res) {
var stream;
stream = getThumb(req.file.binary.thumb);
req.on('close', function() {
return console.log("reQ.on close");
});
req.connection.on('close', function() {
return console.log('reQ.connection.on close');
});
req.on('end', function() {
return console.log('reQ.on end');
});
res.on('close', function() {
return console.log("reS.on close");
});
res.connection.on('close', function() {
return console.log('reS.connection.on close');
});
res.on('end', function() {
return console.log('reS.on end');
});
stream.on('close', function() {
return console.log('stream.on close');
});
return stream.pipe(res);
};
听什么事?
注意:我正在使用快递,但它没有任何区别。
欢呼!答案 0 :(得分:-1)
有类似的问题,答案是:
req.connection.on('close', function() {
stream.destroy();
});