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

[BE] 기존 SSE 코드 완전 제거 및 타이머 동기화 기능을 웹소켓으로 변경 작업 마무리 #985

Merged
merged 6 commits into from
Dec 19, 2024

Conversation

kelly6bf
Copy link
Contributor

연관된 이슈

구현한 기능

  • 타이머 잔여시간 조회 기능에 Web Socket 적용
  • 기존 SSE 코드 제거

상세 설명

  • 타이머 잔여시간 조회 기능에 Web Socket을 적용하고 기존 SSE 로직을 제거하였습니다.
  • 테스트 코드가 아직 미완성입니다. 이는 향후 예정된 대규모 테스트 개선 작업에서 함께 논의해봅시다.

Copy link
Contributor

@JiHyeonL JiHyeonL left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

웹소켓 어떻게 사용하셨는지 궁금해서 브랜치 pull 받아서 코드 쭉 살펴봤는데 정말 깔끔하게 잘 구현하셨더라구요. 대단해요 👍👍
수고 많으셨습니다!!

Comment on lines +43 to +44
final String pairRoomAccessCode = parsePairRoomAccessCode(session);
pairRoomWebSocketSessionStore.removeSession(pairRoomAccessCode, session);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

페어룸에 있는 사용자가 한 명 나갔을 경우, 이 메서드가 실행되어 세션이 삭제되는 방식이 맞을까요??
신기하네요!!😀

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

맞습니다!! 웹소켓 연결이 끊어질경우 실행되는 후처리 함수에서 직접 정의한 세션을 삭제합니다!

아 근데.. 이거 이방식이면 SSE 처럼 프로덕션 A, B로 분리되면 유지가 안되네요..

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sse 쓸 때도 커넥션 저장하는 용도의 스토리지가 있었는데, 웹소켓은 PairRoomWebSocketSessionStore 이 친구가 그 역할을 하고 있는 것 같더라구요. 레디스 써야겠네요😅

Copy link
Member

@reddevilmidzy reddevilmidzy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

수고 많으셨습니당!

Comment on lines 1 to 13
//package site.coduo.sync.service;
//
//import static org.assertj.core.api.Assertions.assertThat;
//import static org.assertj.core.api.Assertions.assertThatThrownBy;
//import static org.assertj.core.api.AssertionsForClassTypes.assertThatCode;
//
//import org.junit.jupiter.api.DisplayName;
//import org.junit.jupiter.api.Test;
//import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
//
//import site.coduo.sync.exception.NotFoundSseConnectionException;
//
//class EventStreamsRegistryTest {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

윽 테스트 코드 다 주석처리 해두면 나중에 봤을 때 이 친구를 왜 주석처리 했는지 확인하기 어려울 것 같아요,,,ㅠ
todo 주석을 추가하여 추후에 어떻게 처리해야할지를 남겨보는건 어떤가요

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

필요없는 테스트를 아예 제거했습니다! 웹소켓의 어떤 부분을 검증해볼지 다함께 의논하고 테스트를 작성해보면 좋을거 같습니다!

SSE 로직 제거에 따라 불필요한 테스트를 제거합니다.
@reddevilmidzy reddevilmidzy changed the title [BE] [BE] 기존 SSE 코드 완전 제거 및 타이머 동기화 기능을 웹소켓으로 변경 작업 마무리 [BE] 기존 SSE 코드 완전 제거 및 타이머 동기화 기능을 웹소켓으로 변경 작업 마무리 Dec 19, 2024
Copy link
Member

@reddevilmidzy reddevilmidzy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

테스트도 나중에 추가 부탁드립니다ㅏ

@yechop yechop merged commit 9bfbe0c into BE/dev Dec 19, 2024
2 checks passed
@yechop yechop deleted the BE/feature/#983 branch December 19, 2024 07:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants