• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

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

18.12.07 13:11 작성 조회수 92

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

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

0

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