Wymuś zamknięcie wszystkich połączeń na serwerze http node

Mam utworzony serwer http przy użyciu:

var server = http.createServer()

Chcę zamknąć serwer. Prawdopodobnie zrobiłbym to dzwoniąc:

server.close()

Jednak to tylko uniemożliwia serwerowi otrzymywanie nowych połączeń http. Nie zamyka żadnych, które są nadal otwarte.http.close() przyjmuje wywołanie zwrotne, a wywołanie zwrotne nie jest wykonywane, dopóki wszystkie otwarte połączenia nie zostaną faktycznie rozłączone. Czy istnieje sposób na wymuszenie zamknięcia wszystkiego?

Głównym problemem dla mnie jest to, że mam testy Mocha, które uruchamiają serwer http w ich konfiguracji (beforeEach()), a następnie zamknij je w swojej łezce (afterEach()). Ale odkąd dzwonięserver.close() nie zamknie wszystkiego, późniejhttp.createServer() często skutkujeEADDRINUSE błąd. Czekając naclose() ukończenie również nie jest opcją, ponieważ otwarte połączenia mogą zająć naprawdę dużo czasu.

Potrzebuję sposobu na wymuszenie zamknięcia połączeń. Jestem w stanie wykonać tę stronę kliencką, ale wymuszam zamknięcie wszystkich moich połączeń testowych, ale wolałbym zrobić to po stronie serwera, tj. Po prostu powiedzieć serwerowi http, aby zamknął wszystkie gniazda.

questionAnswers(5)

yourAnswerToTheQuestion