Forçar fechar todas as conexões em um servidor http node.js

Eu tenho um servidor http criado usando:

var server = http.createServer()

Eu quero desligar o servidor. Presumivelmente eu faria isso ligando:

server.close()

No entanto, isso apenas impede que o servidor receba novas conexões http. Não fecha nenhum que ainda esteja aberto.http.close() recebe um retorno de chamada e esse retorno de chamada não é executado até que todas as conexões abertas sejam realmente desconectadas. Existe uma maneira de forçar fechar tudo?

A raiz do problema para mim é que eu tenho testes Mocha que iniciam um servidor http em sua configuração (beforeEach()) e depois desligá-lo em sua desmontagem (afterEach()). Mas desde que acabei de chamarserver.close() não vai fechar completamente as coisas, o subsequentehttp.createServer() muitas vezes resulta em umEADDRINUSE erro. Esperando porclose() terminar também não é uma opção, já que as conexões abertas podem levar muito tempo para expirar.

Eu preciso de algum jeito de forçar as conexões. Eu sou capaz de fazer isso do lado do cliente, mas forçar todas as minhas conexões de teste para fechar, mas eu prefiro fazê-lo do lado do servidor, ou seja, basta dizer ao servidor http para fechar todos os soquetes.

questionAnswers(5)

yourAnswerToTheQuestion