Advertisement

Netty的ByteToMessageDecoder与SimpleChannelInboundHandler

阅读量:

一般情况下,在客户端和服务器端之间不论接收的数据来自哪里,
首要任务是将二进制数据映射到Java对象结构中,
因此Netty特意创建了一个父类类别,
专门负责处理这种数据转换过程。
接下来我们将探索如何利用该类进行反序列化

当我们继承了ByteToMessageDecoder这一类之后**(即实现了其功能)(而不是单独创建一个新类), 我们无需实现decode()方法即可**(因为系统内部已经提供了该功能)**. 通过观察发现, 这里的in在传递进来的时候就已经是 ByteBuf 类型, 所以不需要强制转换. 第三个参数为 List 类型的变量, 我们可以通过将解码后的结果对象依次添加到该列表中, 实现自动将结果传递给下一个Handler的功能, 这样就完成了解码逻辑的构建. 另外值得注意的是, 在 Netty 中的 ByteBuf 类型默认采用堆外内存管理策略. 而在我们使用 ByteToMessageDecoder 进行编码时,默认情况下并不会释放内存? ??

Netty开发了一个名为SimpleChannelInboundHandler的对象,并自动实现了类型判断

全部评论 (0)

还没有任何评论哟~