inflearn logo
강의

講義

知識共有

Node.js 教科書 - 基本からプロジェクト実習まで

自分でやる1(参加者人数表示)

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

250

kdy67212269

投稿した質問数 11

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 ) 에 의해 방이 삭제되어 버리는지 모르겠습니다.

조언 부탁드립니다.

mongodb mysql nodejs javascript

回答 3

0

zerocho

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

0

kdy67212269

답변 감사합니다.

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

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

0

zerocho

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

실제 서비스에서도 cluster를 사용하나요?

1

313

2

캐싱에 관하여

0

279

3

salt를 실무에서 사용할때 항상 randomBytes로 만들어줘야 하나요?

0

347

1

게시물 올리기 오류

0

408

1

캐슁 이후 로그인창

0

266

1

kakao passport 질문있습니다.

0

493

3

global객체 공유 질문드립니다.

1

417

1

서버가 죽어버리네요

0

1047

8

포링키 문제..

0

234

2

커넥션 플래시 설치문제

0

216

2

익스프레스 제너레이터? 설치문제

0

2586

6

redis 질문입니다.

0

305

1

9장 세션을 DB에 저장시 리다이렉션 오류 발생

0

874

8

프레임워크 선택에 관하여 질문이 있습니다.

0

300

3

시퀄라이즈 질문입니다 ! !

0

588

1

리뉴얼 강의 12강 socket.io에서 req.session접근 관련 질문

0

922

6

oAuth 질문입니다.

0

356

3

GCP 질문입니다.

0

366

1

Passport 모듈 로그인 구현관련

0

720

6

카카오 로그인 관련 질문입니다!!

0

606

4

스스로 해보기 10-16 nunjuncks 질문있습니다

0

499

5

제로초님 HTTP 완벽가이드 추천해주신거 너무 잘 읽었습니다.

0

317

2

gif채팅방 nunjucks관련 질문입니다!

0

337

3

현영님 몽고db관련 질문입니다.

0

233

3