【问题标题】:Netty IdleStateHandler per channel每个通道的 Netty IdleStateHandler
【发布时间】:2013-09-17 16:34:12
【问题描述】:

您好,我在将 IdleStateHandler 添加到管道时遇到了问题。 当我使用

添加时
m_channel.pipeline().addFirst("idleStateHandler", new IdleStateHandler(0, 0, 30));

如果在 30 秒内该通道上没有任何活动(读取或写入),我说每个通道都会触发 IdleState 事件。但此设置适用于定义 IdleStateHandler 的管道处理的每个通道。 问题是如何为每个通道设置不同的空闲时间?

【问题讨论】:

    标签: netty


    【解决方案1】:

    我不明白这个问题...每个 ChannelPipeline 都被分配给一个 Channel,因此它应该按方面工作。如果它没有在 netty bugtracker 上打开一个问题

    【讨论】:

    • 我认为管道是跨整个通道共享的单个实例,如果我错了,请纠正我,使用 DSL 我定义了一个为每个通道克隆的管道,所以每个通道都有它有自己独特的管道。所以现在听起来不错。
    • 每个 Channel 都有自己的 ChannelPipeline。
    【解决方案2】:

    ChannelPipeline 是特定于通道的,您可以自定义您的通道 IdleStateHandler,但您还需要在初始化 IdleStateHandler 之前提供一个 Timer。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-04
      • 1970-01-01
      • 2017-05-23
      • 1970-01-01
      • 2012-02-15
      • 1970-01-01
      • 2012-10-05
      • 2012-01-11
      相关资源
      最近更新 更多