Netty:如果它是一个"保持活跃"的连接,我应该关闭频道吗?

woo*_*ngs 7 java keep-alive netty

我正在用Netty编写一个HTTP服务器.我在创建服务器引导程序时设置了keep-alive选项. bootstrap.setOption("child.keepAlive", true); 每次写HTTP响应时,我都会设置keep-alive标头并在写入响应后关闭通道.

rep.setHeader("Connection", "keep-alive");
channel.write(rep).addListener(ChannelFutureListener.CLOSE);
Run Code Online (Sandbox Code Playgroud)

我不确定我是否应该关闭频道.

for*_*two 8

假设您正在编写HTTP 1.1服务器,则应该在发送响应后默认保持连接处于打开状态.如果由于某种原因,你决定关闭它,你应该包括

Connection: close
Run Code Online (Sandbox Code Playgroud)

在回应中.

注意

bootstrap.setOption("child.keepAlive", true);
Run Code Online (Sandbox Code Playgroud)

打开套接字上的keepalive选项,与HTTP无关; 相反,它是一种监视机制,以便在没有"真实"流量的情况下检测断开的连接.