-
Notifications
You must be signed in to change notification settings - Fork 3
Socket 생명 주기 관리
kangho lee edited this page Aug 27, 2025
·
1 revision
onChange + scenePhase를 이용해서 소켓 on/off를 관리
증상: detailView에서도 background 후 active로 돌아올 때, 소켓이 켜짐
해결: 사용하는 View에서 isActive flag를 관리하여, 해당하는 뷰에서만 소켓이 켜지게 만듦
onAppear + onDisAppear에서 소켓 생명 주기 관리
증상: TabView에서 아직 보이지 않는 Tab까지 미리 레이아웃을 그려서, onAppear를 호출
해결: SelectedTab을 관리하는 TabRouter를 environment로 만들어서 관리하고, flag로 사용
.onChange(of: scenePhase, { _, newValue in
Task {
guard router.selected == .market && isActive else { return }
await handleConnection(by: newValue)
}
})
.task {
isActive = true
guard router.selected == .market else { return }
await store.connect()
}
.onDisappear {
Task {
isActive = false
await store.disconnect()
}
}