Java Vert.x обратный прокси-сервер автоматического декодирования Netty - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть небольшая реализация обратного прокси-сервера 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 голосов
/ 22 ноября 2018

Нет, это невозможно.Лучшим вариантом будет обработка сжатия / распаковки в вашем коде.

...