-
Notifications
You must be signed in to change notification settings - Fork 2
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
[Feature] 화이트보드 입장 핸들링 #141
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ㅠ.ㅠ .......... 다우니 참말로 대단하고 고맙고 존경합니다 .. .... ........
MPC와의 맞짱에서 전 다우니가 이겼다고 생각함 ~~ 어푸루부 !!
@@ -139,6 +142,7 @@ extension WhiteboardRepository: NearbyNetworkConnectionDelegate { | |||
with context: Data?, | |||
isHost: Bool | |||
) { | |||
connectionResultSubject.send(true) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
아 얘가 보내는 값은 별로 중요하지 않은 건가요 ?? 항상 true를 보내고 UseCase에서 분기처리 ? ? ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
뭔가 false
를 보내줄 일이 있지 않을까.. 해서 남겨놓았습니다만..
조이가 보신대로 true
를 보내주는 코드만 존재합니다.
변경하는게 맞을까요?
일단 true
를 보내는 이유는 연결에 성공했기 때문입니다~!
@@ -13,6 +13,9 @@ public final class WhiteboardUseCase: WhiteboardUseCaseInterface { | |||
private var profileRepository: ProfileRepositoryInterface | |||
private let whiteboardListSubject: CurrentValueSubject<[Whiteboard], Never> | |||
public let whiteboardListPublisher: AnyPublisher<[Whiteboard], Never> | |||
public let whiteboardConnectionSubject: PassthroughSubject<Bool, Never> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
얜 private이여도 될 것 같아요 !!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
헉 감사합니다!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
고생하셨습니다 :)
현재 상황에서 현재 동작하는 방식에서 궁금한점이 있습니다..!
만약 리스트 클릭 후 3초가 되기 전에 방생성을 누르는 경우는 어떻게 되나요..??
whiteboardRepository.connectionResultPublisher | ||
.timeout(.seconds(3), scheduler: DispatchQueue.main) | ||
.first() | ||
.replaceEmpty(with: false) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
오우 이 오퍼레이터 동작 방식이 궁금합니다!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
timeout
: 3초동안만 이벤트를 수신합니다first
: 첫 번째 응답을 받고 구독을 취소합니다. (PR 내용의 일회성 구독을 위해 사용하였습니다)replaceEmpty
: 응답을 못받았다면false
를 방출합니다
종합적으로 3초동안 이벤트를 받는데 다른 참가자가 연결된 경우에도 이벤트를 받지 않기 위해 일회성 구독을 하고, 아무 값도 받아오지 못한 경우 실패를 위해 빈 값을fasle
로 치환했습니다!!
|
졌습니다.. |
🌁 Background
📱 Screenshot
2024-12-03.3.49.24.mov
👩💻 Contents
WhiteboardRepository
는 연결 성공 여부를Bool
값으로 방출합니다.WhiteboardUseCase
는 Join 요청 시 일회성 구독을 시작합니다. (다른 참여자가 참가했을 때 값을 받지 않기 위해서)WhiteboardViewController
로 진입합니다.✅ Testing
유령 화이트 보드를 만드는 방법은 방을 만들고 참여자 입장 후 호스트가 먼저 나가고 참여자가 나가는 것입니다.
시뮬레이터에선 방이 사라지지만 실기기에서는 사라지지않습니다.
위에있는 동작 영상 속 첫 번째 셀은 유령 화이트보드로, 연결 시도시 Alert를 띄웁니다.
두번째 셀은 정상적인 방으로 3초 이내에 연결 요청이 수락되어 입장합니다.
📝 Review Note
disconnect
처리하고있습니다.📣 Related Issue