Netty 4.1.3服务器。 我使用以下代码向客户端发送内容
final ChannelFuture future = destChannel.writeAndFlush(new BackendOutboundData( builder.build(), null));
future.addListener(new ChannelFutureListener() {
@Override
public void operationComplete(ChannelFuture future) {
// detect disconnected channel
if (!future.isSuccess()) {
}
}
});
在大多数情况下,它工作正常。但是如果客户端丢失了连接(没有TCP闭包握手),ChannelFutureListener.operationComplete
将不会被解雇
这是预期的行为吗?
这是我的服务器
final ServerBootstrap b = new ServerBootstrap();
b.group(bossGroup, workerGroup)
.channel(NioServerSocketChannel.class)
.option(ChannelOption.SO_BACKLOG, 512)
.childOption(ChannelOption.SO_KEEPALIVE, true)
.handler(new LoggingHandler(LogLevel.INFO))