在 netty 代理中为 gzip deflate 添加通道处理程序
Add channel handler for gzip deflate in netty proxy
我需要添加一个 'channel handler' 来压缩 gzip 内容。我不知道如何在没有网络知识的情况下做到这一点。有人能给我指出正确的方向吗?
正如其他人指出的那样,您的代码有点太长了,这让这个网站上的人的生活更加困难,但我想我可以帮助您一点。
对 netty 做一个简单的解释,您收到的每个请求都经过处理程序管道,并且每个请求都有自己的关联管道。
因此,在启动管道的方法中,您应该添加一个用于解压缩的处理程序,在您的情况下:
initChannelPipeline(ChannelPipeline pipeline, HttpRequest httpRequest)
您正在寻找的处理程序是 HttpContentDecompressor or HttpContentCompressor 无论您是要解压缩 gzip 数据还是将其压缩为 gzip(不清楚,因为您说您想压缩 gzip 内容。您应该说 inflate如果它被 gzip 压缩或放气,如果没有压缩。把它想象成一个气球。充气后,它需要更多 space)。
您应该注意在管道中添加处理程序的顺序。
有关更多说明,请参阅 Channel pipeline doc。
我需要添加一个 'channel handler' 来压缩 gzip 内容。我不知道如何在没有网络知识的情况下做到这一点。有人能给我指出正确的方向吗?
正如其他人指出的那样,您的代码有点太长了,这让这个网站上的人的生活更加困难,但我想我可以帮助您一点。
对 netty 做一个简单的解释,您收到的每个请求都经过处理程序管道,并且每个请求都有自己的关联管道。
因此,在启动管道的方法中,您应该添加一个用于解压缩的处理程序,在您的情况下:
initChannelPipeline(ChannelPipeline pipeline, HttpRequest httpRequest)
您正在寻找的处理程序是 HttpContentDecompressor or HttpContentCompressor 无论您是要解压缩 gzip 数据还是将其压缩为 gzip(不清楚,因为您说您想压缩 gzip 内容。您应该说 inflate如果它被 gzip 压缩或放气,如果没有压缩。把它想象成一个气球。充气后,它需要更多 space)。
您应该注意在管道中添加处理程序的顺序。
有关更多说明,请参阅 Channel pipeline doc。