-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
25 lines (22 loc) · 750 Bytes
/
index.js
File metadata and controls
25 lines (22 loc) · 750 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
module.exports = enableGracefulShutdown;
function enableGracefulShutdown(server, socketIdleTimeout) {
server.socketIdleTimeout = socketIdleTimeout || 10000;
server.activeConnections = {};
server.on('connection', function(conn) {
var key = conn.remoteAddress + ':' + conn.remotePort;
server.activeConnections[key] = conn;
conn.on('close', function() {
delete server.activeConnections[key];
});
});
server.shutdown = function(cb) {
server.close(cb);
for (var key in server.activeConnections) {
server.activeConnections[key].setTimeout(server.socketIdleTimeout, function() {
if(server.activeConnections[key]) {
server.activeConnections[key].destroy();
}
});
}
};
}