Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: 웹소켓 에러 핸들러 구현 #696

Open
wants to merge 4 commits into
base: feature/536
Choose a base branch
from

Conversation

eun-byeol
Copy link
Contributor

@eun-byeol eun-byeol commented Oct 10, 2024

🚩 연관 이슈

close #538

536 브랜치에서 파생하여 작업 진행해서, 536으로 머지 요청해요.

📝 작업 내용

우선, 웹소켓 도입 여부가 확실치 않은 상황이지만 최후의 보루(?)가 될 수 있어서 구현했습니다.

controller에 들어오기 전(1), 후(2)에서 에러 핸들링 처리 구현했습니다.

1. Interceptor에서 endpoint 유효성 검사 (WebSocketPreHandler)

  • 실패 시 OdyWebSocketException 발생 -> WebSocketErrorHandler에서 에러를 캐치해 -> error message 생성

2. controller 내부 MessageExceptionHandler 구현 (EtaSocketController)

  • controller 진입 이후 에러 발생 시 -> ProblemDetail 객체 만들어 -> 요청을 보낸 user의 /queue/errors로 메시지 보냄

🏞️ 스크린샷 (선택)


🗣️ 리뷰 요구사항 (선택)

(2)번에 대한 테스트는 작성이 되었으나, (1)번 테스트는 검증의 어려움으로 구현하지 못했습니다..
검증하려고 한 부분은 WebSocketPreHandlerpreSend() 동작입니다. endpoint 검증하고 실패 시 OdyWebSocketException 던지는지 확인하려고 했어요.
ChannelInterceptorTest 참고하여 QueueChannel 사용한 테스트 시도해보았으나, 임의로 생성한 Message 캐스팅이 잘 되지 않았어요. StompHeaderAccessor 모킹을 하면 될까 싶었는데 정팩메를 쓰고 있어서 불가능했구요.

우선, 다른 이슈들이 우선순위가 높다고 생각해 PR 올립니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant