随笔分类 - Netty
摘要:inBound事件 当发生某个IO事件的时候,例如链路建立,链路关闭,读取操作完成(register,read,active)等,都会产生一个事件,事件在pipeline中传播和处理。pipeline中以fireXXX命名的方法都是从IO线程向用户业务Handler的inBound事件,它们的实现因
阅读全文
摘要:ChannelHandler的添加 一般用户会先添加ChannelInitializer这个Handler,通过这个handler获取channel对应的pipeline,将一系列的channelHandler添加到Pipeline上面。主要是通过调用pipeline的addLast方法进行添加。代
阅读全文
摘要:不论是NioServerSocketChannel,还是NioSocketChannel,最终都会调用父类AbstractChannel的构造函数,pipeline也在channel被创建的时候被创建。 而这里是创建了一个DefaultChannelPipeline。构造函数会保存传入的channe
阅读全文
摘要:Netty服务端处理新连接的流程: 1.检测新连接 2.基于NioServerSocketChannel创建客户端的NioSocketChannel 3.分配客户端channel的线程,注册线程所对应的selector 4.向selector注册读事件 新连接检测 服务端在创建完服务端的NioSer
阅读全文
摘要:NioEventLoop启动触发条件: 1.服务端绑定本地端口 2.新连接接入通过chooser绑定一个NioEventLoop 服务端绑定本地端口 绑定本地端口,使用下面方法; 最终会调用doBind0()方法: 这个时候就会调用channel对应NioEventLoop的execute方法,会判
阅读全文
摘要:NioEventLoopGroup的创建 服务端一般是通过创建两个NioEventLoopGroup来创建NioEventLoop,一个NioEventLoopGroup主要是用于接收客户端的请求,另外一个NioEventLoopGroup则是处理网络IO的相关读写操作,或者是执行定时任务,或者是系
阅读全文
摘要:Netty服务端启动代码: 1.Channel的创建 通过Bootstrap.bind(PORT)调用AbstractBootstrap.doBind(),doBind()调用initAndRegister()。 从该方法可以看出,channel的创建是依赖channelFactory().newC
阅读全文
摘要:Netty是什么? Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。也就是说,Netty 是一个基于NIO的客户、服务器端编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应
阅读全文

浙公网安备 33010602011771号