【问题标题】:When is channelInactive called with keepalive on?什么时候在keepalive开启的情况下调用channelInactive?
【发布时间】:2013-11-21 15:48:05
【问题描述】:

我有一个 SimpleChannelInboundHandler 可以处理一些 http 请求:

CacheServerHandler extends SimpleChannelInboundHandler<FullHttpRequest>

当我没有显式关闭通道/连接并且keepalive为真时,每次channelRead0完成后都会调用channelInactive吗?

或者 channelInactive 只会在通道/连接关闭时被调用一次?

我问这个是因为当 http 连接上的 keepalive 为真时,客户端不会关闭连接,并且客户端可以发送多个请求而无需打开/关闭连接。

【问题讨论】:

    标签: java netty


    【解决方案1】:

    ChannelInactive() 只会在通道关闭时被调用。这是合同。

    【讨论】:

    • 感谢 Norman 清理它,函数名称确实让我有点困惑。
    • Channel.attr 在 channelInactive 中是否仍然有效?
    • @NormanMaurer 澄清一下,这意味着这个应用程序已经关闭了这个频道。这并不意味着 peer 已经关闭了 connection, 对吧?
    • 如果我实现了ChannelDuplexHandler,那么close 回调呢?什么时候调用它,有什么不同?
    • close(...) 将在“你”调用 Channel.close() 或 ChannelHandlerContext.close() 时被调用
    猜你喜欢
    • 1970-01-01
    • 2010-11-18
    • 1970-01-01
    • 1970-01-01
    • 2011-07-08
    • 2019-04-27
    • 1970-01-01
    • 1970-01-01
    • 2016-11-06
    相关资源
    最近更新 更多