상당히 많은 이벤트 들이 있지만 실제 코딩상 주로 사용하는걸 보면
channelActive ▶ channelRead ▶ channelInactive 이렇게만 구현을 보통 많이 한다.
나머지는 필요 할(?) 경우도 있으니 아 이런게 있구나 이정도만 알아도 될듯 하다..
실제 주요 흐름은 아래와 같다
channelRegistered, channelActive
▼
channelRead
▼
channelReadCompleted
▼
channelInactive, channelUnregistered
각각 살펴보자
1. void channelRegistered(ChannelHandlerContext ctx)
The Channel of the ChannelHandlerContext was registered with its EventLoop
부트스트랩의 workGroup 이벤트 루프에 등록된다는것 같다.
2. void channelActive(ChannelHandlerContext ctx)
The Channel of the ChannelHandlerContext is now active
ChannelHandlerContext의 채널이 활성화 되었을때 나옴. 대부분의 코드들을 여기서 수행하더라.
3. void channelRead(ChannelHandlerContext ctx, java.lang.Object msg)
Invoked when the current Channel has read a message from the peer.
이건 클라이언트에서 메시지가 왔을때, 여긴 특이하게 msg 라는 input 파라미터가 하나더 있다
4. void channelReadComplete(ChannelHandlerContext ctx)
Invoked when the last message read by the current read operation has been consumed by
channelRead(ChannelHandlerContext, Object).
이건 정직하게 다 읽었을때 발생하는 메시지이다.
5. void channelWritabilityChanged(ChannelHandlerContext ctx)
Gets called once the writable state of a Channel changed.
이건 앞 샘플에서 발생하지 않았는데 쓰기가 가능할때 발생하는 메시지 인것 같다. ( 나중에 활용해보자 )
6. void userEventTriggered(ChannelHandlerContext ctx, java.lang.Object evt)
Gets called if an user event was triggered.
음.. 이건 사용자 정의로 이벤트를 발생시키는것 받을수 있는건가보군.
7. void exceptionCaught(ChannelHandlerContext ctx, java.lang.Throwable cause)
Gets called if a Throwable was thrown.
음.. 이건 사용자 정의로 이벤트를 발생시키는것 받을수 있는건가보군.
8. void channelInactive(ChannelHandlerContext ctx)
The Channel of the ChannelHandlerContext was registered is now inactive and reached its end of lifetime.
등록되어 있던 채널이 비활성화 되고 라이프타임이 끝나는때 호출이라... 연결이 끊어질때군
9. void channelUnregistered(ChannelHandlerContext ctx)
The Channel of the ChannelHandlerContext was unregistered from its EventLoop
이벤트루프에서 채널이 등록해지 될때 발생한다네.. (뭔말인지.. )
'프로그래밍 > Netty 기초' 카테고리의 다른 글
06. Discard Client 만들기 (0) | 2022.01.07 |
---|---|
04. ChannelHandler 란 (0) | 2022.01.06 |
03. Discard 서버로 기초를 만들어보자 (0) | 2022.01.06 |
01. Netty란 (0) | 2022.01.06 |
02. Discard 서버 (0) | 2022.01.06 |