netty 심장 박동 검사 실현

5592 단어 netty
넷티는 코드를 조금 써서 숙련도를 높이고 인터페이스에 대한 인식을 높이고자 합니다. 앞의 글은 미리 길이를 보내는 방법으로 사용자 정의 메시지 대상을 전송하는 것을 실현했습니다. 이번에는 이전 코드에 코드를 추가하여 심장 박동 검사 서버를 실현했습니다. 이쪽은 먼저 파이프에 idlestatehandler를 추가한 다음에 myhandler에 코드를 추가합니다.
class myhandler extends SimpleChannelInboundHandler<message>{
    /**      */
    private int idle_count = 1;
    /**      */
    private int count = 1;
    @Override
    public void channelRegistered(ChannelHandlerContext ctx) throws Exception {
        System.err.println("one new channel in bound");
    }

    @Override
    public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
        if (evt instanceof IdleStateEvent) {
            IdleStateEvent event = (IdleStateEvent) evt;
            if (IdleState.READER_IDLE.equals(event.state())){
                if (idle_count>2){
                    System.out.println("        ,    ");
                    ctx.channel().close();
                }
                System.out.println("      5       ");
                idle_count++;
            }
        } else {
            super.userEventTriggered(ctx, evt);
        }
    }
    。。。。。。

여기에 심장 박동 패키지에 대한 판단을 합니다. 현재 연결이 2초를 초과하여 데이터를 받지 못하면 idlecount에 대해 +1을 진행합니다. 만약에 idlecount이 2보다 크면 연결을 끊으면 간단한 심장 박동 검사입니다.

좋은 웹페이지 즐겨찾기