【问题标题】:Netty 4.0.0.Beta1 ChannelHandlerContext.readable(boolean) gone, need replacementNetty 4.0.0.Beta1 ChannelHandlerContext.readable(boolean) 不见了,需要更换
【发布时间】:2013-02-02 05:28:43
【问题描述】:

在 netty 4.0.0.AlphaX 中有 ChannelHandlerContext.readable(boolean) 方法来暂停传入流量。 4.0.0.Beta1 的新文档仍然说:

在 4.0 中,每个 ChannelHandler 在其 ChannelHandlerContext 中都有自己的布尔标志,称为“可读”。该标志告诉处理程序是否希望 Netty 读取入站流量。

问题: readable(boolean) 方法没了,现在只能找到ChannelHandlerContext.fireChannelReadSuspended() 方法。恢复交通怎么办?

有人知道如何在 Beta1 升级后暂停/恢复 netty 4 管道上的传入流量吗?

谢谢。

注意:“代理”示例仍然有一个 TODO:

// TODO: Suspend incoming traffic until connected to the remote host.
//       Currently, we just keep the inbound traffic in the client channel's outbound buffer.

【问题讨论】:

    标签: netty


    【解决方案1】:

    您现在可以为此使用 ChannelOption.AUTO_READ。如果您想暂停,只需在 Channel 的 ChannelConfig 上将其设置为 false,并在您想再次开始自动读取时将其设置回 true。

    您现在甚至可以通过始终触发手动读取来更进一步,这有助于在编写代理示例时将内存占用降至最低。我今天早上刚刚更新了代理示例 [1] 以展示这一点。

    [1]https://github.com/netty/netty/tree/master/example/src/main/java/io/netty/example/proxy

    【讨论】:

    • 顺便说一句,您引用的文档在哪里?我想修复它们:)
    • 它在“新的和值得注意的”中:netty.io/Documentation/New+and+Noteworthy。对了,HexDumpProxyFrontendHandler.java 中的 TODO 还在!你的补丁没有修复吗?
    • 谢谢.. 我也错过了删除 TODO,我刚刚删除了它。 :)
    猜你喜欢
    • 1970-01-01
    • 2013-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多