如果 ChannelOutboundBuffer 已满,如何干净地关闭 Netty 中的连接?
How to cleanly close connection in Netty if ChannelOutboundBuffer is filled?
在 Netty 中调用 channel.disconnect()
后 4.x 我遇到了以下异常:
io.netty.channel.StacklessClosedChannelException: null
at io.netty.channel.AbstractChannel.close(ChannelPromise)(Unknown Source) ~[netty-transport-4.1.53.Final.jar:4.1.53.Final]
它们可能是因为 ChannelOutboundBuffer
不为空而创建的。
如何在 close()
之前清洁 ChannelOutboundBuffer
?
如何避免它们或者我应该抓住它们并忽略它们(如果没有办法避免它们)?
close()
应该“清理”ChannelOutboundBuffer
,这意味着它将使所有仍然坐在那里并带有 ClosedChannelException
的写入失败。这听起来很正常。
在 Netty 中调用 channel.disconnect()
后 4.x 我遇到了以下异常:
io.netty.channel.StacklessClosedChannelException: null
at io.netty.channel.AbstractChannel.close(ChannelPromise)(Unknown Source) ~[netty-transport-4.1.53.Final.jar:4.1.53.Final]
它们可能是因为 ChannelOutboundBuffer
不为空而创建的。
如何在 close()
之前清洁 ChannelOutboundBuffer
?
如何避免它们或者我应该抓住它们并忽略它们(如果没有办法避免它们)?
close()
应该“清理”ChannelOutboundBuffer
,这意味着它将使所有仍然坐在那里并带有 ClosedChannelException
的写入失败。这听起来很正常。