为什么客户端 HTTP 连接没有关闭?
Why are client HTTP connections not getting closed?
我有一个 node.js
(12.18.4) 服务器应用程序,用于侦听 HTTP 连接。我们的测试使用 mocha
和 request
,并且我们与服务器建立了很多连接。在测试结束时,我们关闭了服务器,但首先我们通过调用 server.getConnections
并断言该值为 0 来确保所有连接都已关闭。绝大多数情况下是这样,但是 有时返回的值是非零的,通常在60-70左右。我们在测试期间提出了 60-70 多个请求。没有测试失败或卡住。
我如何确定为什么服务器认为这些连接仍然存在?
我质疑断言活动服务器连接数的价值 — 如果您的所有测试都已成功完成,如果您的 OS 清理某些 TCP 连接很慢,这会有什么不同?
无论如何,我会放弃 getConnections
检查并直接调用 server.close(cb)
。
如果没有活动连接,则立即调用 close
回调,或者等待所有剩余连接关闭后再触发。如果连接没有耗尽,应该会发生测试超时。
我有一个 node.js
(12.18.4) 服务器应用程序,用于侦听 HTTP 连接。我们的测试使用 mocha
和 request
,并且我们与服务器建立了很多连接。在测试结束时,我们关闭了服务器,但首先我们通过调用 server.getConnections
并断言该值为 0 来确保所有连接都已关闭。绝大多数情况下是这样,但是 有时返回的值是非零的,通常在60-70左右。我们在测试期间提出了 60-70 多个请求。没有测试失败或卡住。
我如何确定为什么服务器认为这些连接仍然存在?
我质疑断言活动服务器连接数的价值 — 如果您的所有测试都已成功完成,如果您的 OS 清理某些 TCP 连接很慢,这会有什么不同?
无论如何,我会放弃 getConnections
检查并直接调用 server.close(cb)
。
如果没有活动连接,则立即调用 close
回调,或者等待所有剩余连接关闭后再触发。如果连接没有耗尽,应该会发生测试超时。