현재 서버를 스프링프레임워크를 사용중이며
컴포넌트로 netty 5.0 버전을 사용하고 있습니다.
사용중인 프로토콜은 websocket, tcp 두개입니다.
여기서 궁금한 사항은 다음과 같습니다.
1. websocket 핸들러 ping/pong 에 관해
웹소켓 핸들러 구현시 WebSocketServerProtocolHandler를 상속 받아 구현하고 있습니다. channelHandlerA apter를 받아 구현하면 ping/pong을 따로 구현하지 않아도 되는 것인가요?
2. 네티의 refCount에 관해
네티객체들의 라이프사이클은 refCount에 의해 관리 되는것으로 알고 있습니다.
메시지 수신시 ChannelHandlerAdapter 의 channelRead에서 파라미터로 2개가 넘어옵니다.한개는 ChannelHandlerContext 이고, 나머지 한개는 Object 입니다.
이 Object를 구현 프로토콜에 맞게 캐스팅 하여 사용하고 있는데, 캐스팅 후의 변수는 따로 release를 해줘야 하는것인가요?
네티 객체들의 refCount의 자동관리가 어느정도까지인지 궁금합니다.
3. decoder/encoder의 delimiter 에 관해
소켓 통신은 stream oriented 하기 때문에 구분자를 지정 해줘야 합니다.
제가 개발중인 서버에서는 carage return으로 구분을 합니다.
이에 따라 네티의 decoder/encoder기능으로 구현중입니다.
메시지 수신시는 pipeline 에 Delimiters.lineDelimiter()를 추가하여 간단히 적용 시켰습니다.
메시지 송신시는 MessageToByteEncoder를 상속받아 encode 메소에 직접 구현 후 pipeline에 붙였습니다. 이렇게 하는 방법이 맞는건가요?
-