TIL230127

5w31892p·2023년 1월 28일
0

Dev.TIL

목록 보기
60/66

🙊 Today I Learned

  1. WebSocket STOMP 적용

웹소켓까지는 적용하였으나, stomp 적용이 힘들었다.
stomp 연결은 되어 메시지는 보내지는데 받아지지가 않았다.

그래서 STOMP 적용 후 정리한 블로그를 기반으로 기본만 적용한 글들만 찾아봤다.
그리고 stomp 테스트가 가능한 apic 사용법을 찾았는데 딱 한군데 블로그만 정리가 되어 있었다.
보내는 쪽은 @messagemapping에 적었던 주소를 적으면 되는데 보내는 것은 websocketconfig에 적용했던 /pub을 앞에 적은 후 @messagemapping에 적었던 것을 적어 지정해 주면 된다.
즉, @messagemapping ("/send")라고 지정을 하였으면 테스트할 때에 /pub/send를 적으면 됐다.
그리고 받는 쪽은 simpMessageSendingOperations.convertAndSend() 괄호 안에 정해두었던 주소를 적어주면 되는데 받는 쪽은 config에 정해둔 sub까지 다 적어주어야 했다.
그래서 나 같은 경우는 /sub/receive/ + 받는사람이름 + 상품번호로 지정해 두었다.

우선 방을 만들어야 채팅이 가능하기 때문에 포스트맨으로 방을 만들어야 한다. 방이 만들어지지 않은 경우 콘솔창에 아래와 같은 exception이 뜨고 채팅이 가지 않는다.

그러므로 아래와 같이 포스트맨에서 해당 상품에 채팅방을 생성 후 해당 방번호와 상품번호를 꼭 줘어줘야 채팅이 오가는 것을 확인할 수 있다.

테스트 결과 아래와 같이 메시지가 잘 오가는 것을 볼 수 있다.

우선 아래와 같이 채팅방 생성 후 db에 잘 저장되는 것을 확인할 수 있다.

채팅방 생성 후 방번호, 상품 번호 등을 적어 메시지를 적으면 메시지가 오가는 것을 확인할 수 있고, db에도 메시지가 잘 저장되는 것을 볼 수 있다.

하지만 현재로서는 jwt token을 적용해서 하려고 하니 오류가 나서 토큰 적용과, 방 생성시 반 만들 사람의 id까지 저장되게 더 적용을 해야 한다.

아직까지 완성된 모습은 아니지만, 이번 기회에 확실히 웹소켓과 stomp에 대해서 파악을 할 수 있었던 것 같다.

최대한 완성 후 완성된 코드와 정리를 해서 올려야겠다.


0개의 댓글