2012-04-12 2 views
1

Netty 채널을 통해 일련의 정수를 스트리밍하려고합니다. 바로 지금, 내 코드 channel.write(Integer.valueOf(val)에서 파이프 라인의 핸들러로 어떤 인코더/디코더가 없기 때문에 내가 이해할 수있는 java.lang.IllegalArgumentException: unsupported message type: class java.lang.Integer 오류가 발생합니다. 이 올바른지? 나 자신의 정수 디코더를 써야합니까, 아니면 사용할 수있는 정수 디코더가 있습니까? 이 주제와 관련된 몇 가지 지침이 매우 유용 할 것입니다.Netty 용 정수형 엔코더 디코더

답변

1

그래, 이해가 정확합니다. 귀하의 파이프 라인에 적절한 FrameEncoder이 없으면 Netty는 손을 내밀어 Integer을 다루는 방법을 모른다고 말합니다.

기성품 구성 요소를 추가하려는 경우 ObjectEncoderObjectDecoder을 파이프 라인에 추가 할 수 있습니다. 그렇지 않으면 자체 프레임 인코더 및 디코더를 구현해야합니다.

2

네, 그렇습니다. 채널 버퍼에 채널 버스를 작성한 다음 채널에 채널 버퍼를 쓸 수도 있습니다.

뭔가 같은 :

ChannelBuffer buf = ChannelBuffers.buffer(4); 
buf.writeInt(Integer.valueOf(val)); 
channel.write(buf);