2017-05-19 8 views
0

문서의 예제는 디코더 -> 인코더 -> BusinessLogicHandler 플로우를 제공합니다. https://netty.io/4.1/xref/io/netty/example/factorial/package-summary.html은 여러 InboundHandlers 또는 OutboundHandlers를 통해 데이터를 전달합니다.

궁금한 점은 데이터를 여러 InboundHandler 및 여러 OutboundHandler에 전달하는 방법입니다. 내가 알 수 있듯이 디코더는 바이트를 POJO로 디코딩합니다. 그런 다음 InboundHandlerAdapter의 하위 클래스 인 BuginessLogicHandler에서 ctx.writeAndFlush()을 수행합니다. 데이터를 보내는이 작업이고 인코더 (아웃 바운드)는 다시 바이트로 변환 할 데이터를 가져옵니다. 이 가정이 맞다면, InboundHandler1에서 InboundHandler1 -> InboundHandler2로 어떻게 가야합니까? InboundHandler1에서 ctx.writeAndFlush()을 수행하면 InboundHandler2는 파이프 라인에서 데이터가 다시 나옵니다.

답변

1

이벤트를 다음 처리기로 전달하려면 ChannelHandlerContext의 fire *() 메소드 중 하나를 호출해야합니다. 그리고 다음 처리기로 전달하려는 데이터는 ChannelHandlerContext.fireChannelRead (Object)의 인수로 전달 될 수 있습니다.

Pipeline docs