From bb0b480d2ab3108a8ae255b539015da451fdb249 Mon Sep 17 00:00:00 2001 From: Ihor Machuzhak Date: Wed, 30 Apr 2025 16:48:56 +0300 Subject: [PATCH] fix(sio): improve `io.close()` function (#5344) Before this change, `await io.close();` would resolve before the HTTP server was properly shut down. Related: https://github.com/socketio/socket.io/pull/4971 --- packages/socket.io/lib/index.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/socket.io/lib/index.ts b/packages/socket.io/lib/index.ts index 5653911b..e5ea69d1 100644 --- a/packages/socket.io/lib/index.ts +++ b/packages/socket.io/lib/index.ts @@ -831,7 +831,16 @@ export class Server< restoreAdapter(); if (this.httpServer) { - this.httpServer.close(fn); + await new Promise((resolve, reject) => { + this.httpServer.close((err) => { + fn && fn(err); + if (err) { + reject(err); + } else { + resolve(); + } + }); + }); } else { fn && fn(); }