阅读微信原文:
https://mp.weixin.qq.com/s/BpGF_RYiW4EWM4T8aXmxcg
Netty基础概念
Bootstrap和ServerBootstrap:引导类,提供了一个用于应用程序网络层配置的容器;Bootstrap用于客户端,ServerBootstrap用于服务端,轮询客户端的Bootstrap或DatagramChannel,监听其是否连接到服务器
Channel:底层网络传输API必须提供给应用I/O操作的接口,定义了与 socket 丰富交互的操作集,如bind, close, config, connect, isActive, isOpen, isWritable, read, write等等
ChannelHandler:支持多协议,提供用于数据处理的容器,常用接口ChannelInboundHandler,用来定义处理入站事件的方法,接受到数据后,可在其中进行业务逻辑的处理;
ChannelPipeline:为ChannelHandler链提供一个API,用于管理沿着ChannelHandler链入站和出站的事件;每个 Channel 都有自己的ChannelPipeline,当 Channel 创建时自动创建ChannelPipeline
EventLoop: 用于处理 Channel 的 I/O 操作,一个单一的 EventLoop通常会处理多个 Channel的 I/O 操作;一个 EventLoopGroup 可以可以包含 EventLoop,可以自动检索下一个 EventLoop
ChannelFuture:用于异步接受数据,通过注册ChannelFutureListener来监听数据是否到达
ChannelHandlerContext:ChanneHandler链中,事件可以通过ChanneHandlerContext传递给下一个ChanneHandler;其作用之一是绑定ChannelHandler和ChannelPipeline;
ChannelHandler是如何安装在ChannelPipeline:主要是实现了ChannelHandler 的抽象 ChannelInitializer。ChannelInitializer子类 通过 ServerBootstrap 进行注册。当它的方法 initChannel() 被调用时,这个对象将安装自定义的 ChannelHandler(下文中的EchoServerHandler与EchoClientHandler) 集到 pipeline。当这个操作完成时,ChannelInitializer 子类则 从 ChannelPipeline 自动删除自身。
Netty demo实践
请阅读微信原文:
https://mp.weixin.qq.com/s/BpGF_RYiW4EWM4T8aXmxcg
netty入门实践
猜你喜欢
转载自itxiaojiang.iteye.com/blog/2431441
今日推荐
周排行