我有一个http服务器创建使用:
var server = http.createServer()
我想关闭服务器.大概我会这样做:
server.close()
但是,这只会阻止服务器接收任何新的http连接.它不关闭任何仍然是开放的. http.close()接受回调,并且在所有打开的连接实际上已断开连接之前,该回调不会执行.有办法强制关闭一切吗?
问题的根源在于我有Mocha测试,在他们的设置(beforeEach())中启动一个http服务器,然后在拆分(afterEach())中关闭它.但是由于刚刚调用server.close()将不会完全关闭,所以后续的http.createServer()通常会导致EADDRINUSE错误.等待close()完成也不是一个选择,因为开放连接可能需要很长时间才能超时.
我需要一些强制关闭连接的方法.我可以做这个客户端,但是迫使我的所有测试连接关闭,但我宁愿在服务器端执行操作,即只是告诉HTTP服务器硬关闭所有套接字.