Netty's FixedChannelPoolMap не может поддерживать старый канал? - PullRequest
0 голосов
/ 18 апреля 2019

Я настраиваю клиентское приложение по netty и хочу общаться с другим сервером.Перед установкой связи каждое TCP-соединение должно отправить сообщение для входа в систему.И затем, эти tcp-соединения могут отправлять другие сообщения.

Я использую FixedChannelPoolMap, чтобы поддерживать свои каналы для мультиплексирования. Согласно количеству соединений, войдите в систему всех соединений в пуле при запуске моей программы.

Выглядит хорошо.Но после нескольких дней развертывания приложения запрос не может вызвать функцию получения, выбирающую старый канал, у которого был вход в систему, но вызывает функцию создания, создающую новый канал.вот так

channel[] ch;
for (int i = 0; i < 10; i++) {
    Future<Channel> channelFuture = pool.acquire().sync();
    if (channelFuture.isSuccess()) {
        ch[i] = channelFuture.getNow()
        ch[i].writeAndFlush(LOGIN_REQ);
    }
}

for (int i = 0; i < 10; i++) {
    pool.release(ch[i])
}

Это нормально?Как я могу управлять FixedChannelPoolMap без создания нового канала?

...