TIL day 40

이혜원·2023년 1월 9일
0

오늘 한 일

오늘은 socket.io에 대해 더 공부했다.

저번 프로젝트에 했던 자동 세탁 서비스에 적용해봤다.

소켓을 연결한뒤, "BUY"는 order_owner 페이지에서 사장님이 수거하기를 누르면 들어온는 데이터이다.

그렇게 받은 데이터를 "BUY_GOODS"라는 이름의 소켓을 통해 다른 손님들의 페이지에서 어느 사장님이 어느 손님의 빨래를 수거했는지 띄운다.

order_owner 페이지의 수거하기를 누르면 그 빨래를 요청한 손님의 name과 수거한 사장님의 ownerName을 받는다.

아래 스크린은 app.js에 쓰인 코드이다. "BUY"라는 이름의 소켓으로 사장님과 손님의 이름을 받는다.

그리고 guest_mypage의 페이지에서 "BUY_GOODS"라는 이름의 소켓을 통해 수거한 사장님의 이름과 그 빨래를 요청한 손님의 이름을 실시간으로 받아온다.

사장님 쪽에서 수거하기를 누르면

실시간으로 손님의 마이페이지에 저렇게 메세지가 뜬다.

지금 문제는 다른 손님의 페이지에서도 모두 뜬다는거다.

물론 강의에서는 어느 물건이 팔렸는지 모든 손님들이 알아야 되니 모두에게 뜨는게 맞는거지만 이 세탁 서비스에서는 세탁을 요청한 손님에게만 떠야된다.

/// 그리고 여기서 부터는 넘기는 데이터가 하나만 일 때 일어난 일이다.///

order_owner page에서 오직 손님의 이름만 (즉 데이터를 한 개만 넘길때)

위와는 다르게 data.name을 하면 데이터가 넘어오지 못한다. 한개일 때는 그냥 data로 넘기는게 맞다.

그렇게 data만 넘겨서 const{name}으로만 넘기게 되면 클라이언트 화면 쪽에서도 [obeject object]로 뜬다.

그래서 그냥 JSON.stringify(name)으로 넘기면
화면에 --> "name": "이혜원"님의 빨래가 수거되었습니다! 이런식으로 "name"이라는 것까지 나온다.
그래서 name.name을 써서 오직 "이혜원"이라는 guest의 name만 받아올 수 있도록 하였다.

0개의 댓글