ObjectEcho
이번 예제의 특징은 자바 객체를 송수신하다는 점이다.
우선 클라이언트 프로그램을 살펴보자.
67 bootstrap.setPipelineFactory(new ChannelPipelineFactory() { 68 public ChannelPipeline getPipeline() throws Exception { 69 return Channels.pipeline( 70 new ObjectEncoder(), 71 new ObjectDecoder(), 72 new ObjectEchoClientHandler(firstMessageSize)); 73 } 74 });
ChannelBuffer<--> String 변환을 하는 StringEncoder와 StringDecoder가 아니라 ObjectEncoder 와 ObjectDecoder를 사용한 것을 볼 수 있다. 이는 ChannelBuffer<-->자바객체 변환을 수행한다. (객체 Serialization, Deserialization 수행)
예제 패턴으로 봤을 때 메세지를 처리하는 실제 핸들러 (이 예제서는 ObjectEchoClientHandler) 전에 데이터를 인코딩 또는 디코딩하는 핸들러가 등록되어 있음을 볼수 있다. 추후에 자신만의 인코딩/디코딩방법으로 통신하고자할 때 디코더, 인코더를 직접 구현해서 등록하면 될 듯하다.
나머지는 Echo 예제와 동일하다.