현재 크롬에서 웹소켓으로 전문을 송수신 하고 있습니다.
콘솔로그로 1초마다 지켜보고 있고 30초마다 서버와 접속하여 끊어지는 현상을 방지하고 있습니다.
그런데
소켓 연결된 탭을 비활성화 즉 다른 탭을 열고 작업을 하고 있으면 12분~13분 후에 소켓이 끊어져버립니다.
onClose 에서도 감지를 못합니다.
Intensive Wake Up Throttling
Chrome 브라우저가 최소화되거나 초점이 맞지 않은 상태에서 5~6분 후에 웹소켓 연결이 끊길 수 있습니다. "Connection closed: 1001 Going Away (The endpoint is going away due to a server failure or client navigation), clean closure: true" 메시지와 함께 세션 연결이 끊어집니다.
원인:
2020년 7월에 배터리 수명을 절약하기 위한 Chrome 기능이 도입되었습니다. "Javascript 타이머 깨우기의 집중 조절"은 1분(60초) 간격으로 조절합니다. 자세한 내용은 여기를 참조하세요: https://www.chromestatus.com/feature/4718288976216064
이는 클라이언트 프로필에서 30초로 설정된 기본 웹 전송 비활성 시간 초과 설정과 충돌합니다.
Javascript 타이머가 1분 간격으로 제한되면 웹 클라이언트는 기본 30초 비활성 제한 시간 내에 브로커에 keepalive 메시지를 보낼 수 없습니다. 이 문제를 방지하려면 Chrome에서 "Javascript 타이머 깨우기 집중 조절" 기능을 비활성화하거나 inactivity-timeout을 60초보다 큰 값으로 변경하십시오.
참고 :
https://developer.chrome.com/blog/timer-throttling-in-chrome-88/
'프로그래밍 > Js' 카테고리의 다른 글
html table 을 엑셀로 출력하기 (0) | 2023.03.30 |
---|---|
ES6 부동소수점 계산 라이브러리 (0) | 2023.03.29 |
안드로이드 웹뷰와 웹워커 브릿지 (android + webview + webworker bridge example) 샘플 (0) | 2023.02.28 |
방법2 WebRTC localhost Socket.io + Node.js 내부네트워크 정상 (1차완료) (0) | 2023.02.22 |
방법1 WebRTC Socket.io + Node.js + turn 임대 서버 이용방법 (1차완료) (0) | 2023.02.22 |