Netty 3.2.6升级到Netty 4.0x的迁移

3

我对迁移有以下具体查询:

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

b)OrdredMemoryAwareThreadPoolExecutor在4.0x中的等效EventExecutor是什么?

c)在3.2.6中,我已经使用了处理程序回调事件中的event对象的channelId来唯一跟踪客户端,例如,在channelConnected回调中,我使用 evt.getChannel().getId() 获取channelId。由于4.0x中的事件更加细粒度,因此获取Netty生成的唯一通道ID的最佳方式是什么?我已经检查过ChannelHandlerContext是否提供了一种获取相同的方法,但我没有找到一个等价的方法。

我参考了http://netty.io/4.0/api/上的javadocs文档。

提前感谢您的帮助。

1个回答

2
a) 查看IdleStateHandler的javadoc。您需要在userEventTriggered(..)方法中拦截IdleStateEvents。
b) 当向ChannelPipeline添加ChannelHandler时,可以指定一个EventExecutor。请参见没有更多的ExecutionHandler - 它已经在核心中了。 c) 目前Channel上没有id()。您可以暂时使用Channel.hashCode()。很可能在以后的版本中会重新引入id()。

谢谢Norman。我会仔细研究EventExecutor,看它是如何确保顺序的。 - user1511595

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接