小编Mig*_* L.的帖子

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

我实际上正在对ExpressJS服务器进行一些负载测试,我注意到服务器发送的响应包括一个"Connection:Keep-Alive"标头.据我所知,连接将保持打开状态,直到服务器或客户端发送"Connection:Close"标头.

在一些实施方式中,"Connection:Keep-Alive"标题出现"Keep-Alive"标题,设置连接超时和通过该连接发送的连续请求的最大数量.

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

有没有办法(并且相关)在Express服务器上设置这些参数?

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

编辑: 经过一些调查,我发现默认超时是在节点标准http库中设置的:

socket.setTimeout(2 * 60 * 1000); // 2 minute timeout
Run Code Online (Sandbox Code Playgroud)

为了改变这个:

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);
Run Code Online (Sandbox Code Playgroud)

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

编辑2: 感谢josh3736的评论.

setSocketKeepAlive与HTTP keep-alive无关.它是一个TCP级别选项,允许您检测连接的另一端是否已消失.

keep-alive http-headers node.js express

38
推荐指数
3
解决办法
5万
查看次数

如何使用Java中的AVRO序列化Date

我实际上是在尝试使用Avro序列化包含日期的对象,并且反序列化日期与预期值不匹配(使用avro 1.7.2和1.7.1进行测试).这是我正在序列化的类:

import java.text.SimpleDateFormat;
import java.util.Date;

public class Dummy {
    private Date date;
    private SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss.SSS");

    public Dummy() {
    }

    public void setDate(Date date) {
        this.date = date;
    }

    public Date getDate() {
        return date;
    }

    @Override
    public String toString() {
        return df.format(date);
    }
}
Run Code Online (Sandbox Code Playgroud)

用于序列化/反序列化的代码:

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.Date;

import org.apache.avro.Schema;
import org.apache.avro.io.DatumReader;
import org.apache.avro.io.DatumWriter;
import org.apache.avro.io.Decoder;
import org.apache.avro.io.DecoderFactory;
import org.apache.avro.io.Encoder;
import org.apache.avro.io.EncoderFactory;
import org.apache.avro.reflect.ReflectData;
import org.apache.avro.reflect.ReflectDatumReader;
import org.apache.avro.reflect.ReflectDatumWriter;

public class AvroSerialization { …
Run Code Online (Sandbox Code Playgroud)

java serialization datetime avro

13
推荐指数
2
解决办法
2万
查看次数