随笔分类 -  Netty

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