读书人

netty容易介绍

发布时间: 2012-11-21 08:23:26 作者: rapoo

netty简单介绍

?

ServerBootstrap

?

启动netty只需要三行代码:

1. OioWorker.run()?? 负责监听一个socket的InputStream
2. Channels.fireMessageReceived()? 发送消息 ?
3. channel.getPipeline().sendUpstream(); 通知给pipline

?

?

自定义Hander

因为没有hander,所以日志里面会有警告:

?

        public void sendUpstream(ChannelEvent e) {            DefaultChannelHandlerContext next = getActualUpstreamContext(this.next);            if (next != null) {                DefaultChannelPipeline.this.sendUpstream(next, e);            }        }
?

报文frame

?

报文frame的问题,即由于这种状态机模型,你的某个channel每收到一段buffer,虽然顺序是保证的,但是完整性就不一定了。就好像我们自己写传统socket要循环读一样,你这里同样要循环读,读到完整可解析的一整个frame方能解析,这个问题应该也不是netty独有的,除非你以前写socket应用都是侥幸没有被网卡被操作系统被网关路由器之类的切过包。。。

netty有dynamicBuffer,就是用来聚集frame的,当然你也可以通过它提供的decoder来保证frame。

?

?

?

?

?

读书人网 >其他相关

热点推荐