상세 조회 - 참여 처리
- 참여 신청 버튼 누른다
- 어떤 사람이(User) 어떤 게시글에(Crew) 신청을 했는가 에 대한 Participation 엔티티가 저장됨
- Participation 은 3가지 status 가 있음
- Status 에 따른 로직이 변경된다.
SockJS를 이용한 STOMP 방식 실시간 채팅 기능
- 각각의 채팅방을
/sub + id 로 구분하여 /pub 메시지로 구독한 endpoint 에 채팅 전달한다.
- 입/퇴장 시
/pub 메시지 를 보내 현재 참여자 현황에 대한 최신화 와 채팅 내역들을 저장하며 읽었던 시간대를 저장 한다
- 참여자 현황 최신화는 컨트롤러단에서
UserID KEY 값으로 하고 채팅방 ID 를 Value로 하여 데이터에 대한 정보를 담아서 보낸다.
- 채팅 내역들은
/pub 메시지 보낼때 마다 ajax통신을 하여 fetch 방식으로 저장하는 API를 호출해 해당 채팅내역을 저장한다.
- 입장 시 해당 채팅방 내역에 대한 정보를 불러와서 사용자가 읽었던 시간대와
비교하여 가장 최근에 읽은 위치까지 스크롤링 한다.
- 채팅방 퇴장시 현재시간을
chat-config-entity 에 저장하며 이후 채팅방 재입장 시 현재 시간과 비교하여 읽었던 위치를 찾는다.