본문 바로가기

IT for developer/Netty

Netty 예제 분석 - PortUnification

PortUnification

단일 포트로 여러 서비스를 해주는 예제이다.

현재 요청하는 서비스가 무엇인지 판단하여 파이프라인에 현재 핸드러를 삭제하고 새로운 핸들러들을 등록하는 형태이다.

HTTP 서비스로 연결해주는 경우 아래와 같이 HTTP.snoop 예제에서 살펴본 것처럼 4개의 핸들러를 새롭게 등록하고 현재 핸들러(this)를 제거한다.
147     private void switchToHttp(ChannelHandlerContext ctx) {
148         ChannelPipeline p = ctx.getPipeline();
149         p.addLast("decoder", new HttpRequestDecoder());
150         p.addLast("encoder", new HttpResponseEncoder());
151         p.addLast("deflater", new HttpContentCompressor());
152         p.addLast("handler", new HttpRequestHandler());
153         p.remove(this);
154     }

나머지들도 같은 패턴이다.