리프레시 주기에 통신 지연을 고려해요
짧은 주기에 세션을 유지하려면 네트워크를 이해하여야 해요.
예컨데 웹토렌트는 웹소켓 연결이 반복적으로 초기화 되고 있어요.
예상되는 실수는 네트워크 지연을 고려하지 않았을 것이라 추정되빈다.
서버에서 interval 벨류는 120으로 2분을 주었쩌 이런 값은 일반적으로 연결이 시작되는 onopen 이벤트에서 설정되는데, 멀리서 내 컴퓨터까지 데이터가 전달되는 지연 시간을 고려하지 않았고 나아가서 내 컴퓨터에서 멀리까지 보내는 시간을 고려하지 않아서 120초가 경과하여 계속해서 연결이 끊어지고 있어요.

요즘은 5초 정도만 빼주어도 문제가 잘 안 생기는데요. 이제는 없어진 3g 통신망을 고려하거나 전파 음영 지역, 시골 음지를 탐험하는 사람이 무선 통신을 사용할 때 발생하는 통신 지연을 고려한다면 10초를 넣어도 좋을 것이어요.
const DELAY_TIME = 5000
ws.onmessage=({data})=>{
var json=JSON.parse(data)
switch(json.action){
case "announce":
if("interval" in json){
setTimeout(()=>{
sendNumwant()
}, Math.max(30000, json.interval * 1000) - DELAY_TIME)
}
break
}
}아무튼 setTimeout( .. , interval ) 이렇케 하면 안대빈다.
