我有使用以下方法创建的http服务器:
var server = http.createServer()
我想关闭服务器。大概我可以通过调用以下命令来做到这一点:
server.close()
但是,这只会阻止服务器接收任何新的http连接。它不会关闭任何仍在打开的窗口。http.close()进行回调,并且直到所有打开的连接实际上都断开连接后,该回调才会执行。有办法强制关闭所有内容吗?
http.close()
对我来说,问题的根源在于我有Mocha测试,该测试在其设置(beforeEach())中启动http服务器,然后在其拆卸(afterEach())中将其关闭。但是,由于仅调用server.close()不会完全关闭设备,因此后续操作http.createServer()通常会导致EADDRINUSE错误。等待close()完成也不是一种选择,因为打开的连接可能会花费很长时间。
beforeEach()
afterEach()
http.createServer()
EADDRINUSE
close()
我需要某种方式来强制关闭连接。我可以在客户端执行此操作,但是可以强制关闭所有测试连接,但是我宁愿在服务器端执行此操作,即只是告诉http服务器硬关闭所有套接字。
你需要
connection
close
destroy
您还可以在子进程中运行服务器,并在需要时退出该进程。