Javascript 节点:http模块,无法更改连接超时

Javascript 节点:http模块,无法更改连接超时,javascript,node.js,http,timeout,Javascript,Node.js,Http,Timeout,我在设置每个http模块连接的超时时遇到问题 我的代码如下: server = require('http').createServer(function(req,res) { res.writeHead(200,{'Content-Type':'text/plain'}); res.end('Hello World!'); }).listen(1089); server.on('connection', function (socket) { console.log('s

我在设置每个http模块连接的超时时遇到问题

我的代码如下:

server = require('http').createServer(function(req,res) {
   res.writeHead(200,{'Content-Type':'text/plain'});
   res.end('Hello World!');
}).listen(1089);

server.on('connection', function (socket) {
    console.log('socket opened');

    socket.on('close', function () {
        console.log('socket closed');
    });

   // Extend socket lifetime
   socket.setTimeout(120000, () => {
       console.log('Timeout socket');
   });
});
理论上,如果我打开一个保持活动的连接,它应该在120秒不活动后关闭

使用netcat,我可以获得正确的输出:

echo -e "GET /test HTTP/1.1\nConnection: keep-alive\n\n" | netcat -C -q -1 localhost 1089


HTTP/1.1 200 OK
Content-Type: text/plain
Date: Wed, 10 Jul 2019 00:12:50 GMT
Connection: keep-alive
Transfer-Encoding: chunked

c
Hello World!
0
我在终端中也得到了正确的输出:

socket opened
Timeout socket
socket closed
唯一的问题是,它只需几秒钟即可关闭连接,而不是120秒。我已经尝试了很多方法,但我找不到任何方法来改变这一点,以实现120秒的超时

有趣的是,打开
http://localhost:1089/
使用Chrome(不是Firefox,它只打开一个连接,几秒钟后关闭),它打开两个连接,第一个连接在几秒钟后关闭,第二个连接在120秒内保持打开状态

但如果我用netcat从两个终端同时打开两个连接,两个连接都会在几秒钟后关闭

我还尝试了三种添加方法

server.setTimeout(120000, () => {
   console.log('server timeout');
});
对守则:

  • 只是在创建服务器后添加它:没有任何更改,两个超时的输出同时打印
  • 注释套接字超时:相同的行为,只是它现在只是触发服务器超时
  • 注释整个
    服务器。关于('connection')
    部分:同上

  • 我通过访问
    http://localhost:1089/
    在浏览器中。当浏览器通过两个连接发送两个HTTP请求(一个用于
    GET/
    ,另一个用于
    GET/favicon.ico
    )时,我发现一个连接在几秒钟后超时,而另一个连接在120秒后超时——希望这些信息能有所帮助。您尝试过使用吗?@shaochuancs:谢谢。我在Chrome和Firefox上试过,但在这里,只有Chrome才会出现这种情况。我更新了问题。@jfriend00是的,谢谢。它也有同样的行为。我更新了问题。我通过访问
    http://localhost:1089/
    在浏览器中。当浏览器通过两个连接发送两个HTTP请求(一个用于
    GET/
    ,另一个用于
    GET/favicon.ico
    )时,我发现一个连接在几秒钟后超时,而另一个连接在120秒后超时——希望这些信息能有所帮助。您尝试过使用吗?@shaochuancs:谢谢。我在Chrome和Firefox上试过,但在这里,只有Chrome才会出现这种情况。我更新了问题。@jfriend00是的,谢谢。它也有同样的行为。我更新了问题。