강의

멘토링

커뮤니티

Inflearn Community Q&A

mky980027's profile image
mky980027

asked

Node.js Textbook - From Basics to Project Practice

Implementing a real-time GIF chat room router

왜 방을 처음 만든 사람은 'XXX님이 입장하셨습니다.' 가 안뜨는 이유가 궁금합니다.

Written on

·

199

0

방을 처음 만든 사람도 chat.pug가 실행 되어(io.connect('http://localhost:8005/chat'...))

아래 함수가 호출 되잖아요.

socket.js

chat.on('connect', (socket)=>{

...

socket.join( roomId );

socket.to(roomId).emit('join', {

user : 'system',

chat : ${req.session.color}님이 입장하셨습니다.

});

...

});

그럼 위와 같이 roomId에 emit이 호출 되니깐 chat.pug에 설정해둔 socket.on('join', function (data){...}) 이벤트 함수가 호출되어야 될것 같은데 .. 왜 다른 사람(다른브라우저)만 방에 입장 했을 때 socket.on('join')이 호출되는지 모르겠습니다.

mysqlnodejsjavascriptmongodb

Answer 2

0

mky980027님의 프로필 이미지
mky980027
Questioner

아 그렇군요 답변 감사합니다.

0

zerocho님의 프로필 이미지
zerocho
Instructor

이게 웹소켓이 실제로 연결되는 시간차가 있어서 처음 방에 들어온 사람은 emit('join')을 할 때, 프론트 웹소켓의 on('join')에게 전달되지 않을 수 있습니다.

mky980027's profile image
mky980027

asked

Ask a question