【问题标题】:Netty 3.2.6 to Netty 4.0x migrationNetty 3.2.6 到 Netty 4.0x 的迁移
【发布时间】:2013-09-13 07:10:07
【问题描述】:

我有以下关于迁移的具体问题

a) 我目前正在使用IdleStateAwareChannelUpstreamHandler 处理channelIdle 事件以及其他常规ChannelUpstream 事件回调。当这个迁移到 4.0x 模型时,应该是什么等效的方法?

b) 在 4.0x 中,OrdredMemoryAwareThreadPoolExecutor 对应的 EventExecutor 是什么?

c) 在 3.2.6 中,我使用来自 handler-callbacks 事件对象的 channelId 来唯一地跟踪客户端。例如,在channelConnected回调中,我曾经从evt.getChannel().getId()获取channelId。由于事件在 4.0x 中更细粒度,获取 Netty 生成的唯一通道 id 的最佳方法是什么?我检查了ChannelHandlerContext 是否提供了获得相同的方法。但我找不到等价物

我指的是http://netty.io/4.0/api/的javadocs

提前致谢

【问题讨论】:

    标签: java migration version netty


    【解决方案1】:

    a) 参见 IdleStateHandler 的 javadocs。需要在 userEventTriggered(..) 方法中拦截 IdleStateEvents。

    b) 在将 ChannelHandler 添加到 ChannelPipeline 时指定 EventExecutor。见No more ExecutionHandler - it's in the core.

    c) 目前频道上没有 id() 了。您现在可以使用 Channel.hashCode()。 id() 很可能会在以后的版本中回来。

    【讨论】:

    • 谢谢诺曼。我将仔细研究 EventExecutor 以了解它如何确保顺序
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-04
    • 2019-03-18
    • 1970-01-01
    • 2015-05-23
    • 2019-02-21
    • 2015-03-13
    • 1970-01-01
    相关资源
    最近更新 更多