인프런 커뮤니티 질문&답변

엽스님의 프로필 이미지

작성한 질문수

Node.js 교과서 - 기본부터 프로젝트 실습까지

실시간 GIF 채팅방 라우터 구현

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

18.12.07 13:11 작성

·

140

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')이 호출되는지 모르겠습니다.

답변 2

0

엽스님의 프로필 이미지
엽스
질문자

2018. 12. 08. 20:24

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

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

2018. 12. 07. 18:01

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

엽스님의 프로필 이미지

작성한 질문수

질문하기