【问题标题】:Why are client HTTP connections not getting closed?为什么客户端 HTTP 连接没有关闭?
【发布时间】:2021-02-13 05:19:29
【问题描述】:

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

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

【问题讨论】:

  • 测试结束时到底是如何关闭服务器的?
  • getConnections检查之后我们只使用server.close()

标签: node.js http server mocha.js


【解决方案1】:

我质疑断言活动服务器连接数的价值——如果你的所有测试都成功完成,如果你的操作系统清理一些 TCP 连接的速度很慢,这有什么区别?

无论如何,我会放弃getConnections 支票,直接打电话给server.close(cb)

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-30
    • 2015-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-10
    • 2013-08-13
    相关资源
    最近更新 更多