인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

우동이님의 프로필 이미지
우동이

작성한 질문수

Slack 클론 코딩[실시간 채팅 with React]

socket.io 이벤트 연결하기

Socket.io 관련 질문입니다!

작성

·

216

0

안녕하세요! 강의 잘 보고 있습니다.

다름이 아니라 이 강의에서 Socket.io를 통해 현재 나의 워크스페이스에 참여한 사용자 중 로그인 된 사용자를 받아오는 것을 보여주시고 계신데 제가 아래코드를 통해 똑같이 데이터를 받아 왔습니다. 하지만 초록불이 안켜지길래 Data를 찍어봤더니 배열안에 그 사람의 정보가 객체 형태로 넘어오더라구요. DMList에 초록불 켜지는 로직은 배열안에 id값만 들어있어서 그 id값만 비교해서 켜지게 해놓으신 것 같은데 socket.io를 통해 받아온 데이터를 찍어보니 배열안에 로그인한 사용자의 정보를 객체형태로 들어가 있었습니다. 혹시 제가 잘못된 부분이 있어서 그런건지 궁금합니다!

useEffect(() => {
    socket?.on('onlineList', (data: number[]) => {
      console.log(data);
      setOnlineList(data);
    });
    return () => {.
      socket?.off('onlineList');
    };
  }, [socket]);

자문자답 ( 해결했습니다. )

죄송합니다! 스스로 해결한 것 같습니다ㅎㅎ

workspace.tsx에서 처음에 서버에게 로그인했다는 것을 socket.io로 전송할 때 userData.id를 보내지 않고 userData를 보낸 것 같습니다. 그래서 아마도 서버쪽에서 응답을 해줄 때에 로직상에서 꼬여서 잘못된 데이터를 응답해주는 것 같습니다. 죄송합니다!

답변 1

0

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

프론트에서 보낸 데이터 그대로 서버에서 저장해서 그렇습니다~

우동이님의 프로필 이미지
우동이

작성한 질문수

질문하기