25 lines
518 B
JavaScript
25 lines
518 B
JavaScript
|
module.exports = function makeKillable(server) {
|
||
|
var sockets = [];
|
||
|
|
||
|
server.on('connection', function (socket) {
|
||
|
//add socket to list
|
||
|
sockets.push(socket);
|
||
|
|
||
|
socket.once('close', function () {
|
||
|
//remove socket from list
|
||
|
sockets.splice(sockets.indexOf(socket), 1);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
server.kill = function (cb) {
|
||
|
server.close(cb);
|
||
|
sockets.forEach(function (socket) {
|
||
|
socket.destroy();
|
||
|
});
|
||
|
// reset so the server can be restarted
|
||
|
sockets = [];
|
||
|
};
|
||
|
|
||
|
return server;
|
||
|
};
|