内容简介:Netty 4.1.37.Final 发布了,此版本主要修复了一些 bug,同时弃用了一些 HTTP/2 相关类,并在添加特性的基础上相应进行替换。 Http2MultiplexCodec * 弃用 Http2MultiplexCode 和 Http2MultiplexCodecBuilder 在此...
Netty 4.1.37.Final 发布了,此版本主要修复了一些 bug,同时弃用了一些 HTTP/2 相关类,并在添加特性的基础上相应进行替换。
Http2MultiplexCodec * 弃用
Http2MultiplexCode 和 Http2MultiplexCodecBuilder 在此版本中被标记为 @deprecated,原因在于它的实现方式导致 Http2FrameCodec 与 Http2MultplexCodec 的耦合过于紧密,这使得在将这些帧复用到 Http2StreamChannel 之前无法添加对帧的特殊处理。
现在使用 Http2MultiplexHandler 替代上述弃用函数,它只负责多路复用。这意味着开发者不在 ChannelPipeline 中只使用 Http2MultiplexCodec,而是需要将 Http2FrameCodec 和 Http2MultiplexHandler 添加到管道中。例子如下:
ChannelPipeline pipeline = ...
pipeline.addLast(Http2MultiplexCodecBuilder.forServer(new HelloWorldHttp2Handler()).build());
...
上边这段代码将来将变成:
java ChannelPipeline pipeline = ...
pipeline.addLast(Http2FrameCodecBuilder.forServer().build());
pipeline.addLast(new Http2MultiplexHandler(new HelloWorldHttp2Handler());
...
DnsNameResolver TCP fallback
根据 RFC7766 的定义,解析器应支持 TCP fallback,以防响应过大而被截断,此版本新增了对该功能的支持,需要在构建最终的 DnsNameResolver 之前配置 DnsNameResolverBuilder。
举个例子,此前的代码无法 TCP fallback:
DnsNameResolver resolver = new DnsNameResolverBuilder(eventLoop).channelType(NioDatagramChannel.class).build();
...
现在通过指定 socketChannelType,可以实现该功能:
DnsNameResolver resolver = new DnsNameResolverBuilder(eventLoop)
.channelType(NioDatagramChannel.class)
.socketChannelType(NioSocketChannel.class).build();
...
完整的重要更新内容查看:
https://netty.io/news/2019/06/28/4-1-37-Final.html
完整更改记录查看:
https://github.com/netty/netty/milestone/210
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- CSS与中文相关的一些特性
- MySQL8.0 - 新特性 - 安全及权限相关改进 原 荐
- Netty 4.1.37.Final 发布,HTTP/2 相关类新特性
- WebAssembly 相关工具
- Python 集合相关操作
- Nginx相关实战案例
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Design systems
Not all design systems are equally effective. Some can generate coherent user experiences, others produce confusing patchwork designs. Some inspire teams to contribute to them, others are neglected. S......一起来看看 《Design systems》 这本书的介绍吧!