微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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.
})

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐