Netty的深入浅出--84.RepalyingEncode和MessageToMessageDecoder的深入理解及使用

这里我总结一下,分析源码主要的是要从宏观上去了解它的使用,而不是去读它的源码,应该更主要的是看它的doc文档说明,然后在结合着去看它的源码,这样才能从一个宏观的角度去解读它。

RepalyingEncode是bytemessagedecoder的一个特殊变化,继承了阻塞IO中的非阻塞解码器;

它俩最大的区别就是在实现decode()和decodeLast()方法之后不需要检查是否请求字节可行。

 它是怎么做的呢

简单描述:当数据足够的时候,会执行后面的操作;如果数据不够的话会抛出错误异常

而且该错误异常都属于同一个对象。

对于ReplayingDecoder和ByteToMessageDecoder两个来说我们已经认识了,那MessageToMessageDecoder呢 ?

数据通过字节从网络进入到程序,解码成message,这个时候,从当前处理器到下一个处理器转换过程就是从message到message的过程,这个时候就要用到MessageToMessageDecoder这个类

查看 MessageToMessageDecoder源码

这样的话,我们可以在之前long类型处理之后的基础上加上该MessageToMessageDecoder处理器,这个消息最后传递到我们自定义处理器的时候就是string类型了。

然后将我们自定义处理器接收数据类型改为string类型

加入解码器

启动服务端、客户端:

 

MessageToMessageCodec既是解码器又是编码器

因为它既实现了出栈处理器又实现了入栈处理器 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值