Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
优雅地终止Node.js中的保持活动连接_Node.js_Sockets_Keep Alive_Cloudflare - Fatal编程技术网

优雅地终止Node.js中的保持活动连接

优雅地终止Node.js中的保持活动连接,node.js,sockets,keep-alive,cloudflare,Node.js,Sockets,Keep Alive,Cloudflare,Cloudflare现在重用几个保持活动的连接来代理传入的连接,这有利于资源的使用,但干净地断开工作者与它们的连接会让人非常痛苦。在他们这样做之前,您可以简单地从负载平衡器集中删除一个worker,并且不会向该worker发送新请求,而现有请求将继续处理。既然他们使用keep-alives,他们就不需要启动新的连接,因此从负载平衡器队列中删除一个worker不再阻止通过这些现有keep-alive连接传入的新请求 我可以在给定的超时时间后对每个连接调用connection.destroy(),但

Cloudflare现在重用几个保持活动的连接来代理传入的连接,这有利于资源的使用,但干净地断开工作者与它们的连接会让人非常痛苦。在他们这样做之前,您可以简单地从负载平衡器集中删除一个worker,并且不会向该worker发送新请求,而现有请求将继续处理。既然他们使用keep-alives,他们就不需要启动新的连接,因此从负载平衡器队列中删除一个worker不再阻止通过这些现有keep-alive连接传入的新请求

我可以在给定的超时时间后对每个连接调用
connection.destroy()
,但这可能会中断有效的请求。我也可以在每次
res.end
调用之后调用它,但是由于请求共享连接,一个请求可能会终止另一个请求正在使用的连接。这同样适用于设置低超时,例如
connection.setTimeout(1000)

在允许keep-alive套接字完成所有当前请求的同时,是否有一种拒绝来自keep-alive套接字的其他请求的好方法?如果能够以某种方式简单地通知cloudflare套接字不应再用于传入请求,那就太好了,但我不确定这是否可行

我觉得某种半开放式套接字可以实现这一点,但在这一点上执行似乎有点棘手