강의

멘토링

커뮤니티

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

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

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

Triển khai bộ định tuyến phòng trò chuyện GIF theo thời gian thực

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

Viết

·

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

Câu trả lời 2

0

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

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

0

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

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

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

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

Đặt câu hỏi