我3个月前开始使用Netty.最初它看起来非常简单和直接使用,因为我按照4.x系列主页中给出的示例.
由于我正在深入探索它,我无法理解某些事件或回调名称.例如,我无法理解以下内容之间的区别:
ChannelRead(ChannelHandleContext ctx, Object msg) { ... }
channelRead0(ChannelHandlerContext ctx, String message) { ... }
messageReceived(ChannelHandlerContext, I) { ...}
Run Code Online (Sandbox Code Playgroud)
看到netty主页的例子总是使用channelRead,但是互联网上的一些例子是指channelRead0.
另请阅读channelRead0重命名为messageReceived.如果我正在编写一个简单的服务器程序,我应该使用上述哪一个?
令我困惑的是,我也看到了来自JBOss的Netty软件包
org.jboss.netty.bootstrap.*;
Run Code Online (Sandbox Code Playgroud)
除了
io.netty.bootstrap.ServerBootstrap;
Run Code Online (Sandbox Code Playgroud)
新手开始和理解netty的适当方式是什么?
首先,在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) { ... }
Run Code Online (Sandbox Code Playgroud)
继承自ChannelInboundHandlerAdapter班级.方法:
messageReceived(ChannelHandlerContext, I) { ...}
Run Code Online (Sandbox Code Playgroud)
用于Netty 3.X版本.
编辑:添加@trustin(Netty的开发者)评论,
channelRead0来自SimpleChannelInboundHandler4.x,它将messageReceived在Netty 5中重命名
希望能帮助到你.
| 归档时间: |
|
| 查看次数: |
2321 次 |
| 最近记录: |