在我们的Netty客户端中,有些情况我们称之为:
channel.closeFuture().sync();
在完成后,我们会看到更多数据进入我们的处理程序之一。我们编写了一个Http2ConnectionHandler,即使在这个结束的未来完成之后,该处理程序也会接收数据。
我的问题是:关闭的未来何时完成,管道可以完成更多的工作?
解答: 是的,接近未来的火灾,然后管道被拆除,正如诺曼在下面所说的那样。
答案 0 :(得分:1)
一旦关闭频道,更具体,ChannelPipeline应该被拆除,这意味着将删除所有处理程序,并且将调用每个handlerRemoved
的{{1}}。
答案 1 :(得分:0)
当底层通道(在HTTP / 2情况下,TCP / IP连接)关闭时,将触发closeFuture()
。这可能是因为您或远程对等方关闭了连接。与封闭通道关联的Netty管道不应再接收任何数据。明确地读取/写入封闭的通道将引发异常。