我有一个node.js
(12.18.4)服务器应用程序,它侦听HTTP连接。我们的测试使用mocha
和request
,并且我们与服务器建立了许多连接。在测试结束时,我们关闭了服务器,但是首先我们通过调用server.getConnections
并断言该值为0,来确保所有连接都已关闭。在大多数情况下,它是,但是有时返回的值非零,通常为60-70。在测试期间,我们提出的请求远远超过60-70。没有测试失败或卡住。
如何确定服务器为何认为这些连接仍然存在?
答案 0 :(得分:1)
我质疑对活动服务器连接数进行断言的价值-如果所有测试均成功完成,如果您的操作系统清理某些TCP连接的速度很慢,那会有什么不同?
无论如何,我放弃了getConnections
支票,只是打电话给server.close(cb)
。
如果没有活动的连接,将立即调用close
回调,或者等待直到所有剩余连接都关闭后再触发。如果连接不会耗尽,则应该发生测试超时。