안녕하세요.
아이들핸들러를 통해서 읽기, 쓰기, 읽기&쓰기 에서 설정한 일정시간동안 동작을 하지 않을때의 수행할 동작을 설정가능한걸 살짝 바꿔보고싶어서 질문올려봅니다.
이리저리 자세하게 적으려다보니 꼬이는것같아서 쉽고 간단하게 요약해본건 먼저 적습니다..
서버에서 클라이언트로 패킷을 보냈을때 스톱워치를 시작하고 클라이언트에서 응답이 왔을때 스톱워치를 멈추고 초기화 하고,
다시 패킷을 보내기전까지 중지하는 동작을 하고싶습니다.
----------------------------------------
현재 구현한 상황은
서버는 클라이언트에 주기적으로 데이터를 전송(30초마다)하고 클라이언트에서 수신한경우에 데이터를 서버로 송신합니다.
만약 클라이언트에서 일정시간동안 응답이 없다면, 클라이언트와 서버의 연결이 끊어진 상태라고 판단을 하고 서버에서 연결을 종료하려고 합니다.
서버에서 클라이언트로는 30초마다 데이터를 보내고 15초간 응답이없으면 끊기는 동작을 하려고 아이들핸들러를 사용했습니다만
아이들 핸들러에서 reader idleTime을 초과하면 여지없이 채널이 끊기는데 위에 적은것처럼 클라이언트로 수신된 데이터가 있을때
스톱워치를 중지하는부분이 있을까요?
구현은 어떻게든 가능하겠지만 직접 적는다면 가독성이 나빠지거나 코드가 더러워질것같아서 라이브러리내에 구현되어있는 기능있다면 사용하고싶습니다..
서버에서 클라이언트로 보내는 주기를 짧게한다면 클라이언트가 많아질경우 서버쪽 부담이 급증하게되서
차선책으로 readerIdleTime을 서버의 패킷송신 주기인 30초로 똑같이 설정을 했지만 이 부분을 보완하고싶어 적어봅니다.