不为断开连接的通道调用ChannelFutureListener.operationComplete

时间:2016-07-26 00:26:50

标签: netty

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

0 个答案:

没有答案