웹소켓 채팅 요청
message/room/{채팅방 번호}{ "userId": "1", // 채팅 보낸 유저 번호 "content": "안녕하세요" // 채팅메시지 내용 }
- content 길이 제한
- 1 ~ 2000 자
웹소켓 채팅 응답
chat/room/{채팅방 번호}{ "userInfo": { // 채팅 보낸 유저 정보 "userId": 1, "username": "유재희", "profileImage": "https://lh3.googleusercontent.com/a/AItbvmmujg3pE4C3iRbHWRZCd-BtvUykZ2BaaIAuSoo7=s96-c" }, "content": "안녕하세요" // 채팅 메시지 내용 "createdAt": "2022-08-10T13:13:54" // 채팅 메시지의 생성 시간 }
인증
특정 채팅방을 subscribe할때 해당 채팅방의 유저인지 토큰을 통해 인증이 필요하도록 구현할 생각인데, 아직 해당부분은 구현하지 않았습니다. 지금은 토큰없이 웹소켓 통신이 가능합니다.
과정
- 웹페이지에 접속하면 /ws-stomp 엔드포인트로 웹소켓 커넥션을 맺는다
- 채팅방하기 버튼을 누른면 웹소켓 클라이언트가
chat/room/{채팅방 번호}엔드포인트를 구독한다
- 채팅 메시지를 보내면
message/chat/{채팅방 번호}엔드포인트로 메시지를 보낸다
chat/room/{채팅방 번호}를 구독하고 있는 모든 클라이언트는 해당 엔드포인트에 발행된 모든 메시지를 받게됩니다- 따라서 채팅을 보낸 유저번호를 토대로 본인이 보낸 메시지인지, 상대방이 보낸 메시지인지 구분을 해야할것 같습니다
![[팀 08] 사이코](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F95482992-37b2-4340-9a70-77909ee02ece%2F%25E1%2584%258E%25E1%2585%25A5%25E1%2586%25AF%25E1%2584%2589%25E1%2585%25AE.jpg?table=block&id=0de3b72d-52fa-4b81-ac88-2a87252cc0a4&cache=v2)