为什么客户端HTTP连接没有关闭?

时间:2020-10-30 17:58:36

标签: node.js http server mocha

我有一个node.js(12.18.4)服务器应用程序,它侦听HTTP连接。我们的测试使用mocharequest,并且我们与服务器建立了许多连接。在测试结束时,我们关闭了服务器,但是首先我们通过调用server.getConnections并断言该值为0,来确保所有连接都已关闭。在大多数情况下,它是,但是有时返回的值非零,通常为60-70。在测试期间,我们提出的请求远远超过60-70。没有测试失败或卡住。

如何确定服务器为何认为这些连接仍然存在?

1 个答案:

答案 0 :(得分:1)

我质疑对活动服务器连接数进行断言的价值-如果所有测试均成功完成,如果您的操作系统清理某些TCP连接的速度很慢,那会有什么不同?

无论如何,我放弃了getConnections支票,只是打电话给server.close(cb)

如果没有活动的连接,将立即调用close回调,或者等待直到所有剩余连接都关闭后再触发。如果连接不会耗尽,则应该发生测试超时。