当谈到超时HTTP请求时,看起来node.js有三个单独的超时:
任何人都可以澄清每种方法之间的差异以及为什么有人想要使用每种方法吗?
答案 0 :(得分:13)
req.setTimeout
和res.setTimeout
最终导致相同的底层系统调用,它使用TCP套接字本身设置超时相应的libuv / os调用。所以我认为两者都是等价的,你可以选择哪一个更方便,或者哪一个让你觉得语义更清晰。我可能错了,尽管如此,如果有其他人知道肯定会随意纠正我。通常默认值是合理的。但是,如果您知道很多客户端的连接速度非常慢或很复杂(您在偏远地区或卫星或其他任何地方提供移动电话),并且实际上仍然可行的连接,我们可能需要设置更长时间超时。如果您知道客户端连接良好(如同一数据中心中的服务器),并且您希望更积极地释放资源,则可能需要将它们设置得更短。