From 4dec8921dbd642f7826e5514c1cb5227e6b1a3ca Mon Sep 17 00:00:00 2001 From: Shweelan Samson Date: Fri, 12 Oct 2018 19:35:47 +0300 Subject: [PATCH] Send connection: close header on shutdown --- server/server.js | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/server/server.js b/server/server.js index 6e5b808..a3202e7 100644 --- a/server/server.js +++ b/server/server.js @@ -169,26 +169,24 @@ koa.use( flush: require("zlib").Z_SYNC_FLUSH }) ); -koa.use(router.routes()); -koa.use(koaStatic("./public")); const server = http .createServer(koa.callback()) .listen(config.server.port, config.server.interface); +koa.use(async (ctx, next) => { + await next(); + if (!server.listening) ctx.set("Connection", "close"); +}); + +koa.use(router.routes()); +koa.use(koaStatic("./public")); + function closeServer(timeout) { return new Promise(resolve => { - setTimeout(() => { - if (!resolve) return; - // Ignore HTTP requests from alive connections - server.removeListener("request", koa.callback()); - server.setTimeout(1); - - setTimeout(resolve, 1000); - }, timeout).unref(); - // prevent new sockets to connect and close server eventually. server.close(resolve); + setTimeout(resolve, timeout).unref(); }); }