Java Vert.x反向代理自动Netty解码

时间:2018-11-21 15:51:27

标签: java http netty reverse-proxy vert.x

我有一个反向代理的Vert.x小型实现,在功能上正常运行。

下游请求通过tryUseCompression(true)(gziped)完成,我们的服务器可以相应地对其进行回答。

为避免额外的解压缩/压缩,我们希望当我们收到一个请求压缩的请求,并且下游响应具有相同的压缩率(例如,全部在gzip中)时,HTTP代理不应尝试对下游结果进行解压缩,而应而是直接返回上游响应。

就我所能遵循的Vertx代码而言,Netty一直被要求对接收到的消息进行解码,而我们只能得到结果

请参见Http1xClientHandler :: handleMessage:

  HttpObject obj = (HttpObject) msg;
  DecoderResult result = obj.decoderResult();

还可以在HttpChannelConnector :: applyHttp1xConnectionOtions中找到

if (client.getOptions().isTryUseCompression()) {
  pipeline.addLast("inflater", new HttpContentDecompressor(true));
}

是否可以告诉Vertx / Netty不要解压缩单个呼叫的结果?

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

不,这不可能。最好的选择是处理代码中的压缩/解压缩。