У меня есть два SimpleChannelHandler
в моей заявке:
pipeline.addLast("handler1", new FirstHandler());
pipeline.addLast("handler1", new SecondHandler());
Оба реализуют messageReceived
и writeRequested
.FirstHandler
выполняет некоторые действия по рукопожатию и будет удален после того, как это будет сделано, так что только SecondHandler
останется в канале.
Если я напишу что-то на канале с ch.write(...)
на этапе установления связизатем он проходит через весь канал (от последнего к первому обработчику).Почему даже writeRequested
из SecondHandler
называется?Я ожидал, что он просто возвращается со слоя, где мы делаем ch.write (...):
| ^
v |
FirstHandler ----> FirstHandler
// Not used in the handshaking step
SecondHandler ----> SecondHandler
Почему ch.write(...)
проходит через все слои?