Project/실시간 채팅 앱

소켓에 대하여..

CoderHan 2022. 10. 9. 17:30
반응형

소켓이란?

웹소켓은 클러이언트와 서버랑 관계만 연결되어 있으면 서버에서 client에게 data를 보낼 수 있다.
실시간으로 어던 동작을 구현하는 부분에서 유리하다.

 

오늘 이걸 구현하느라 하루종일 붙잡고 있었다.

처음에 로그인하면 GUEST로 로그인하는데 token을 return안해주고 있었다.

그래서 localStorage에서 불러와도 undefined으로 소켓간 연결이 안되었다.

그래서 토큰을 리턴해주도록해서 이 문제를 제일 먼저 해결했다.

 

그 다음 문제는 Data를 가져오는 문제였는데

내가 만든 프로젝트는 단일 채팅방이 아니라 채팅목록 안에 세부 채팅방이 있는 형태이다.

메세지를 전송할 때는 리스트 안에 채팅목록 안에 메시지를 추가해주는 방식이라 list전체를 받아온다.

그래서 Post가 동작할 때 소켓이 동작하도록 했는데 전체 리스트를 가져와서 목록에는 최근 내용이 업데이트 됐지만

우측에 세부 메세지를 보여주는 항목이 render가 안됐다.

그래서 list state를 업데이트 해주면서 동시에 object형식으로 받아오기때문에 active 상태인 채팅목록 리스트의

메세지에 접근해서 우측에 메시지도 함께 업데이트 되도록 해줬다..

 

오늘 이걸 붙잡느라 5시간정도 소요했다..... 중간에 현타가 오지게와서 좀 쉬고 그랬지만

결국 해내서 뿌듯하다!!!!!!!!!!!

 

//추가로 새로고침하면 logout되는 문제를 발견했는데...이거만 해결하면 이제 배포할 수 있다..

담주안에 끝내야지...

 

 

반응형