웹소켓과 인코더 관련 문의드립니다.

66 views
Skip to first unread message

김영규

unread,
Jan 14, 2022, 1:42:57 AMJan 14
to Netty Korean User Group
현재 서버를 스프링프레임워크를 사용중이며

컴포넌트로 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에 붙였습니다. 이렇게 하는 방법이 맞는건가요?


Reply all
Reply to author
Forward
0 new messages