Netty5.0使用简单介绍


NioEventLoopGroup Netty内部都是通过线程在处理各种数据, NioEventLoopGroup就是用来管理调度他们的,注册Channel,管理他们的生命周期

ServerSocketChannel 是一个可以监听新进来的TCP连接的通道, 就封装了一个标准IOServerSocket.

 

ObjectEncoder把对象序列化后,转为ChannelBuffer并返回,但是在返回的ChannelBuffer的最前面4个字节(int),这个数字,代表了该对象转为字节流后,字节流的长度
只要实现方法:
encode(ChannelHandlerContext ctx, Serializable msg, ByteBuf out) throws Exception
此处执行往客户端返回序列化后的数据
 
ObjectDecoder 反序列化后根据headerlength + content的格式,取得content
继承了FixedLengthFrameDecoder定长解码器可以帮助我们轻松实现定长解码报文
只要实现方法:
decode(ChannelHandlerContext ctx, ByteBuf in) throws Exception //解析接收到的序列化的数据
       extractFrame(ChannelHandlerContext ctx, ByteBuf buffer, int index, int length) :重写了父类的这个方法,避免了memory copy。本方法被decode方法调用
 

ChannelPipeline可以理解成一个消息( 或消息事件,ChanelEvent)流转的通道,在这个通道中可以被附上许多用来处理消息的handler,当消息在这个通道中流转的时候,如果有与这个消息类型相对应的handler,就会触发这个handler去执行相应的动作。

主要使用提供的方法: addLast(ChannelHandler... var1);

此处实现了ChannelHandlerAdapterà I/O事件的处理类

handlerAdded(ChannelHandlerContext ctx) throws Exception {
exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
所有的客户端通讯操作都再此处开始被处理
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值