Почему в примере прокси-сервера Netty 4 канал AUTO_READ установлен как ложный
В нетти 4пример "прокси", опция автоматического чтения канала была отключена:
serverBootStrap.group(bossGroup, workerGroup)
...
.childOption(ChannelOption.AUTO_READ, false)
Если прокомментированоchildOption(ChannelOption.AUTO_READ, false)
пример прокси не может работать. И более подробно, в методеchannelRead
классаHexDumpProxyFrontendHandler
,outboundChannel
всегда будет неактивным.
И я исследовал исходный код Netty, обнаружил, что «автоматическое чтение» будет влиять на методыfireChannelActive
а такжеfireChannelReadComplete
классаDefaultChannelPipeline
if (channel.config().isAutoRead()) {
read();
}
Но я все еще не могу понять, какова связь между автоматическим чтением и примером прокси. На мой взгляд, когда данные отправляются во входящий буфер, Netty должна запустить событие чтения канала.
Итак, есть два вопроса:
Почему отключение автоматического чтения необходимо для примера «прокси»?Зачем включать автоматическое чтение сделаетoutboundChannel
всегда неактивен?