Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🚩 연관 이슈
close #538
536 브랜치에서 파생하여 작업 진행해서, 536으로 머지 요청해요.
📝 작업 내용
우선, 웹소켓 도입 여부가 확실치 않은 상황이지만 최후의 보루(?)가 될 수 있어서 구현했습니다.
controller에 들어오기 전(1), 후(2)에서 에러 핸들링 처리 구현했습니다.
1. Interceptor에서 endpoint 유효성 검사 (
WebSocketPreHandler
)OdyWebSocketException
발생 ->WebSocketErrorHandler
에서 에러를 캐치해 -> error message 생성2. controller 내부 MessageExceptionHandler 구현 (
EtaSocketController
)/queue/errors
로 메시지 보냄🏞️ 스크린샷 (선택)
🗣️ 리뷰 요구사항 (선택)
(2)번에 대한 테스트는 작성이 되었으나, (1)번 테스트는 검증의 어려움으로 구현하지 못했습니다..
검증하려고 한 부분은
WebSocketPreHandler
의preSend()
동작입니다. endpoint 검증하고 실패 시OdyWebSocketException
던지는지 확인하려고 했어요.ChannelInterceptorTest 참고하여
QueueChannel
사용한 테스트 시도해보았으나, 임의로 생성한 Message 캐스팅이 잘 되지 않았어요.StompHeaderAccessor
모킹을 하면 될까 싶었는데 정팩메를 쓰고 있어서 불가능했구요.우선, 다른 이슈들이 우선순위가 높다고 생각해 PR 올립니다.