node.js – 如何在nodejs服务器中设置HTTP Keep-Alive超时

我实际上正在对Expressjs服务器进行一些负载测试,我注意到服务器发送的响应包括一个“Connection:Keep-Alive”头。据我所知,连接将保持打开,直到服务器或客户端发送“连接:关闭”头。

在一些实现中,“连接:保持活动”头连接一个“Keep-Alive”头,设置连接超时和通过此连接发送的最大连续请求数。

例如:“Keep-Alive:timeout = 15,max = 100”

在Express服务器上设置这些参数有什么方法(和它有关系)吗?

如果没有,你知道Expressjs如何处理这个问题吗?

编辑:
经过一番调查,我发现认超时在node standard http library中设置:

socket.setTimeout(2 * 60 * 1000); // 2 minute timeout

为了改变这个:

var http = require('http');

http.createServer(function (req,res) {
  res.writeHead(200,{'Content-Type': 'text/plain'});
  res.end("Hello World");
}).on('connection',function(socket) {
  socket.setTimeout(10000);
}).listen(3000);

无论如何,对我来说,它仍然看起来有点奇怪,服务器没有向客户端发送关于其超时的任何提示

编辑2:
感谢josh3736的评论

setSocketKeepAlive与HTTP保持活动无关。它是一个TCP级别选项,允许您检测到连接的另一端已经消失。

解决方法

快3:

var express = require('express');
var app = express();
var server = app.listen(5001);

server.listen(3000);

server.on('connection',function(socket) {
  console.log("A new connection was made by a client.");
  socket.setTimeout(30 * 1000); 
  // 30 second timeout. Change this as you see fit.
})

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...