gpt4 book ai didi

netty - channelhandler 中 channelInactive 和 close 和 disconnect 之间的区别?

转载 作者:行者123 更新时间:2023-12-05 02:16:17 64 4
gpt4 key购买 nike

channelhandler 中的 channelInactive 和 close 和 disconnect 事件有什么区别?

如果我手动关闭 channel ,channelhandler 中的所有三个方法都会被调用吗?

如果 channel 因网络错误关闭,channelhandler中的三个方法都会被调用吗?

我想知道如果我只是实现 channelInactive 方法,所有的关闭和断开连接事件是否也被覆盖?我的意思是 channelInactive 方法是否优于其他方法?

最佳答案

区别在于 disconnectclose 是出站的,这也是为什么它们在 ChannelOutboundHandler 中定义,而 channelInactive 是入站,因此在 ChannelInboundHandler 中定义。

出站事件是通过 Channel.*ChannelHandlerContext.* 方法显式触发的事件,例如:“我想关闭 channel ”。然后用户可以拦截这些并做一些事情,比如延迟关闭等。

入站事件由传输本身触发(EventLoop)并且通常会告诉您发生了某些事情(这可能是因为您请求了它或远程对等点这样做了)。

disconnectclose 之间的区别取决于传输本身,例如使用 TCP 时没有区别,而使用 UDP 有一个。

关于netty - channelhandler 中 channelInactive 和 close 和 disconnect 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50225565/

64 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com