1 Star 0 Fork 1

V5UNCODE / netty-learning

forked from 黄亿华 / netty-learning 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
ch3-channel.md 1.57 KB
一键复制 编辑 原始数据 按行查看 历史
yihua.huang 提交于 2013-10-10 00:22 . channel

netty那点事(三) NioServerChannel

终于来到了最重要的Channel部分。这部分实在写得慢,一方面是这部分盘根错节,不太好理清头绪,另一方面是看到了几篇很优秀的文章,想要写得更好,确实要多费一番心思。

这篇文章会从几个维度来解释netty的Channel机制。

一个连接的生命周期

Bind: NioServerSocketChannel

Accept:NioServerBoss

Read:NioWorker.read

Write:AbstractNioWorker

netty与NIO

NIO:

Selector	->Boss
		  	->Worker

实际上Channel部分没有太多内容,

channel in Netty

TODO

ServerChannel

SocketChannel

DatagramChannel

LocalChannel


ChannelHandler

ChannelUpstreamHandler

ChannelDownstreamHandler

Config Parent & Child

通过handler把底层隔离了

Netty channel部分比较复杂,一时可能难以入手。我们先结合一些NIO Server的知识,从NioServerSocketChannel入手,讲讲一个基于NIO的服务器的流程。

http://rdc.taobao.com/team/jm/archives/423

http://cqupt123.iteye.com/blog/1706902

Channels部分事件流转静态方法 1.fireChannelOpen 2.fireChannelBound 3.fireChannelConnected 4.fireMessageReceived 5.fireWriteComplete 6.fireChannelInterestChanged 7.fireChannelDisconnected 8.fireChannelUnbound 9.fireChannelClosed 10.fireExceptionCaught 11.fireChildChannelStateChanged

http://en.wikipedia.org/wiki/Sink_(computing)

Java
1
https://gitee.com/v5uncode/netty-learning.git
git@gitee.com:v5uncode/netty-learning.git
v5uncode
netty-learning
netty-learning
master

搜索帮助