강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của kdy67212269
kdy67212269

câu hỏi đã được viết

Sách giáo khoa Node.js - Từ cơ bản đến thực hành dự án

Tự mình thử 1 (cho biết số lượng người tham gia)

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

Viết

·

244

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

조언 부탁드립니다.

mongodbmysqlnodejsjavascript

Câu trả lời 3

0

zerocho님의 프로필 이미지
zerocho
Người chia sẻ kiến thức

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

0

kdy67212269님의 프로필 이미지
kdy67212269
Người đặt câu hỏi

답변 감사합니다.

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

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

0

zerocho님의 프로필 이미지
zerocho
Người chia sẻ kiến thức

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

Hình ảnh hồ sơ của kdy67212269
kdy67212269

câu hỏi đã được viết

Đặt câu hỏi