240.8. 완료 시 채널 닫기
서버 역할을 할 때, 예를 들어 클라이언트 변환이 완료될 때 채널을 종료하려는 경우가 있습니다.
이는 엔드포인트 옵션 disconnect=true 를 설정하여 이 작업을 수행할 수 있습니다.
그러나 다음과 같이 메시지별로 Camel에 지시할 수도 있습니다.
Camel에 채널을 종료하도록 지시하려면 CamelNetty CloseChannel WhenComplete 키가 부울 true 값으로 설정된 헤더를 추가해야 합니다.
예를 들어 다음 예제에서는 bye 메시지를 클라이언트에 다시 작성한 후 채널을 종료합니다.
from("netty: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);
}
}
});