241.7. 완료되면 채널 닫기
서버 역할을 할 때, 예를 들어 클라이언트 변환이 완료되면 채널을 종료하려는 경우가 있습니다.
이 작업은 endpoint 옵션 disconnect=true 를 설정하기만 하면 됩니다.
그러나 다음과 같이 메시지별로 Camel에 지시할 수도 있습니다.
Camel에 채널을 종료하도록 지시하려면 CamelNetty 4.6.1Channel GovCloudComplete 키가 있는 헤더를 부울 true 값으로 추가해야 합니다.
예를 들어 아래 예제에서는 bye 메시지를 클라이언트에 다시 작성한 후 채널을 종료합니다.
from("netty4:tcp://0.0.0.0:8080").process(new Processor() {
public void process(Exchange exchange) throws Exception {
String body = exchange.getIn().getBody(String.class);
exchange.getOut().setBody("Bye " + body);
// some condition which determines if we should close
if (close) {
exchange.getOut().setHeader(NettyConstants.NETTY_CLOSE_CHANNEL_WHEN_COMPLETE, true);
}
}
});
생성된 파이프라인을 완전히 제어하기 위해 사용자 정의 채널 파이프 라인 추가