웹소켓 채팅 요청
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/{채팅방 번호}
를 구독하고 있는 모든 클라이언트는 해당 엔드포인트에 발행된 모든 메시지를 받게됩니다- 따라서 채팅을 보낸 유저번호를 토대로 본인이 보낸 메시지인지, 상대방이 보낸 메시지인지 구분을 해야할것 같습니다