Netty channelActive не работает при добавлении обработчика из другого - PullRequest
0 голосов
/ 18 февраля 2019

У меня есть AuthenticationHandler extends ChannelHandlerAdapter и в channelRead проверка, если пользователь действителен.Если это так, я добавляю новый обработчик (ServerHandler) для получения всех других сообщений.

ctx.pipeline().addLast(new ServerHandler());
ctx.pipeline().remove(this);

Проблема в том, что метод channelActive не выполняется.Но мне нужно это, чтобы добавить клиента в список со всеми клиентами.Есть ли другой способ сделать это?Может быть, кто-то может помочь!Проблема в том, что я использую Netty 5.0.0 Alpha 2?Но это должно работать, не так ли?

1 Ответ

0 голосов
/ 18 февраля 2019

channelActive выполняется только тогда, когда Channel становится активным, что с точки зрения TCP означает, когда соединение было установлено.Если вы добавите ChannelHandler после подключения канала, он больше не будет видеть активное событие.

Лучшее переопределение handlerAdded(...), которое гарантированно будет вызываться во всех случаях.

...