• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

참여자 1명일때 새로고침 문제

20.06.07 21:50 작성 조회수 97

0

참여자 수 표시 부분을 보다가

채팅방의 총 참여자 수가 1명일때 새로고침을 하면

최초 새로고침 시에는 참여자 수가 0 -> 1로 변환이 됩니다.

이상없습니다.

그런데 2번째 새로 고침을 하면 채팅방이 삭제되버립니다.

socket.js 의 socket.on('disconnect' .... 부분이 실행되는것 같은데..

새로고침을 하면 pug 파일의 소스에 의해 connect 가 발생하고, 그에 따라 socket.js 의 connection 이벤트에 수신되는건 알겠는데.. 

socket.on('disconenct' ... 이 부분은 어떻게 실행이 되는건가요?

disconnect 이벤트가 호출되는 부분이 어디인지...

그리고 왜 최초 새로고침은 참여자수를 0 => 1 로 수정하는데

2번째 새로고침 에는 disconnect 가 수행되어, 

if( userConut === 0 ) 에 의해 방이 삭제되어 버리는지 모르겠습니다.

조언 부탁드립니다.

답변 3

·

답변을 작성해보세요.

0

참여자가 0이 될 때 disconnect 이벤트가 발생해서 socket.on('disconnect')가 실행된 겁니다. 그런데 연결된 클라이언트 소켓들은 연결이 다 끊어져 브라우저로 이벤트가 전송되지 않습니다.

0

김도영님의 프로필

김도영

질문자

2020.06.08

답변 감사합니다.

그런데 어쨋든 disconnect 이벤트가 수신되어야 하는것 아닌가요? disconnect 이벤트는 어떻게 발생되어 

socket.on('disconenct' ..... 이 실행된 걸까요??

0

처음 새로고침할 때 방 삭제가 이루어지는데 문제는 처음 새로고침 응답이 먼저 도착합니다. 그래서 1명으로 뜨지만 실제로는 삭제된 상태입니다. 그래서 2번째 새로고침을 할때서야 제거됩니다.