Netty, option () против childOption ()? - PullRequest
0 голосов
/ 08 февраля 2020

У меня есть вопрос.

В какое время должен использоваться .option () и в какое время должен использоваться .childOption ()?

У меня есть сервер.

I настроить сервер по нижеуказанным линиям. это правильно?

.option(ChannelOption.SO_BACKLOG, defaultConnectionBacklog);
.option(ChannelOption.SO_REUSEADDR, true);
.option(ChannelOption.ALLOCATOR, PooledByteBufAllocator.DEFAULT);


.childOption(ChannelOption.SO_KEEPALIVE, true);
.childOption(ChannelOption.SO_REUSEADDR, true);
.childOption(ChannelOption.TCP_NODELAY, true);
.childOption(ChannelOption.ALLOCATOR, PooledByteBufAllocator.DEFAULT);

1 Ответ

2 голосов
/ 09 февраля 2020

при запуске сервера:

option используется XXXServerSocketChannel (например, NioServerSocketChannel)

childOption используется каналом, утвержденным этим ServerChannel

когда вы запускаете клиент:

вы можете использовать только option, потому что дочерний канал не нужен.

, поэтому в вашем вопросе .childOption(ChannelOption.SO_REUSEADDR, true); бесполезен в принятом канале

для более подробной информации, вы можете прочитать метод channelRead в ServerBootstrapAcceptor классе, код, который нужно делать, когда ServerChannel принимает канал.

PS ServerBootstrapAcceptor - обработчик по умолчанию в конвейере ServerChannel.

...