1.常用编码器
DelimiterBasedFrameDecoder 解决TCP的粘包解码器
StringDecoder 消息转成String解码器
LineBasedFrameDecoder 自动完成标识符分隔解码器
FixedLengthFrameDecoder 固定长度解码器,二进制
Base64Decoder解码器
2.序列化与反序列化
序列
化:把对象转换成字节
的过程,称为对象序列化
反
序列化:把字节恢复成对象
的过程,称为反序列化
3.两种序列化模式
1.对象的持久化概念:将对象转化成字节,存放到硬盘或者数据库中
2.网络传输对象概念: 客户端
将对象序列化为字节
(序列化),变成二进制的形式发送到服务器端,服务器
端接受到字节对象后,反序列
化成对象
注意序列化的类必须要实现Serializable接口 transient修士变量不被序列化
4. 网络传输中如何实现对象的传输? 其次是跨语言 其他序列化实现方案 序列化协议
1.将对象转换成json
实现跨语言
客户端 将对象转换成json 传递给服务器端 序列化
服务器端 将对象转换成json 将json 反序列化
2.用XML
格式序列化
3.ProtoBuf(谷歌第三方协议)
4、 messagePack
5.企业内部自定义序列化协议
5. json传输存在缺点
json: key value 网络传输不够精简
阅读性差
6.MessagePack编码器
它像 JSON,但是更快更小。
MessagePack 是一种高效的二进制序列化格式。它允许您在 JSON 等多种语言之间交换数据,但它更快速更小巧。小整数被编码为单个字节,典型的短字符串除了字符串本身之外只需要一个额外的字节。
支持Python、Ruby、Java、C/C++等众多语言。宣称比Google Protocol Buffers还要快4倍。