【问题标题】:How to write to channel on ReadTimeoutHandler before channel closes in Netty 4如何在 Netty 4 中通道关闭之前在 ReadTimeoutHandler 上写入通道
【发布时间】:2021-03-28 04:47:38
【问题描述】:

ReadTimeoutHandler 的行为在 Netty 4 中与 Netty 3 相比似乎发生了变化。在 Netty 4 中,当超时触发时,Netty 不仅会引发ReadTimeoutException,还会关闭通道。这不是以前的情况。在 Netty 3 中,行为是只提高ReadTimeoutException,通道没有关闭。

我有一个用例,我需要在超时时向通道写入消息。这不能再这样做了,因为到了处理抛出的ReadTimeoutException 的代码时,通道已经关闭了。

关于如何在 Netty 4 中处理这个用例的任何提示/想法?基本上在 Netty 关闭频道之前写到ReadTimeoutException 上的频道?

【问题讨论】:

  • 目前一个可行的解决方案是扩展 ReadTimeoutHandler 而不是在 readTimedOut 实现中关闭通道。看看更熟悉 Netty 的人是否有更惯用的方法会很酷

标签: netty netty4


【解决方案1】:

我认为您可能希望使用IdleStateHandler,它在处理不同类型的空闲事件方面更加灵活。

【讨论】:

    最近更新 更多