Принудительно закрыть все соединения в http-сервере node.js

У меня есть http se, rver, созданный с использованием:

var server = http.createServer()

Я хочу выключить сервер. Предположительно я бы сделал это, позвонив:

server.close()

Однако это только мешает серверу получать любые новые http-соединения. Он не закрывает все, что еще открыто.http.close() принимает обратный вызов, и этот обратный вызов не выполняется до тех пор, пока все открытые соединения не будут фактически отключены. Есть ли способ заставить все закрыть?

Корень проблемы для меня в том, что у меня есть тесты Mocha, которые запускают http-сервер в их настройке (beforeEach()) и затем отключи ихafterEach()). Но так как просто звонюserver.close() не будет полностью закрыть вещи, последующееhttp.createServer() часто приводит кEADDRINUSE ошибка. Ожидатьclose() Завершение также не вариант, так как время открытых соединений может занять очень много времени.

Мне нужен какой-то способ принудительно закрыть соединения. Я могу сделать это на стороне клиента, но заставляю все мои тестовые соединения закрываться, но я бы предпочел сделать это на стороне сервера, то есть просто сказать http-серверу жестко закрыть все сокеты.

Ответы на вопрос(5)

Ваш ответ на вопрос