Netty渠道混乱

时间:2015-03-30 09:56:27

标签: netty

我3个月前开始使用Netty。最初它看起来非常简单和直接使用,因为我按照4.x系列主页中给出的示例。

由于我正在深入探索,我无法理解某些事件或回调名称。例如,我无法理解以下内容之间的区别:

ChannelRead(ChannelHandleContext ctx, Object msg) { ... }

channelRead0(ChannelHandlerContext ctx, String message) { ... }

messageReceived(ChannelHandlerContext, I) { ...}

看到netty主页的例子总是使用channelRead,但是互联网上的一些例子是指channelRead0。

另请阅读channelRead0重命名为messageReceived。 如果我正在编写一个简单的服务器程序,我应该使用上述哪一个?

令我困惑的是,我也看到了来自JBOss的Netty软件包,例如

org.jboss.netty.bootstrap.*;

除了

io.netty.bootstrap.ServerBootstrap;

新手开始和理解netty的适当方法是什么?

1 个答案:

答案 0 :(得分:6)

首先,在Netty 3.X中,软件包来自org.jboss.netty.*,请参阅:http://netty.io/3.10/api/index.html 但启动Netty 4.X的包装来自io.netty.*,请参阅:http://netty.io/4.0/api/index.html

现在,如果您使用Netty 4.X来阅读消息,请使用方法

ChannelRead(ChannelHandleContext ctx, Object msg) { ... }

继承自ChannelInboundHandlerAdapter类。方法:

messageReceived(ChannelHandlerContext, I) { ...}

用于Netty 3.X版本。

编辑:添加@trustin(Netty开发人员)评论,

channelRead0来自4.x的SimpleChannelInboundHandler,它将在Netty 5中重命名为messageReceived

希望它有所帮助。