투케이2K

69. (TWOK/LOGIC) [Ios] 웹소켓 (WebSocket) Connection 통신 연결 및 연결 상태 체크 로직 정리 본문

투케이2K 로직정리

69. (TWOK/LOGIC) [Ios] 웹소켓 (WebSocket) Connection 통신 연결 및 연결 상태 체크 로직 정리

투케이2K 2024. 9. 9. 19:03

[로직 정리]

정리 로직 : Ios / 아이폰

상태 : [Ios] 웹소켓 (WebSocket) Connection 통신 연결 및 연결 상태 체크 로직 정리

 

[설 명]

 

// --------------------------------------------------------------------------------------
[개발 및 테스트 환경]
// --------------------------------------------------------------------------------------

- 언어 : Swift

- 개발 툴 : Xcode

- 구현 기술 : URLSession webSocketTask

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[로직 정리]
// --------------------------------------------------------------------------------------

1. URLSession 생성 및 webSocketTask 지정 실시

2. 웹 소켓 webSocketTask?.delegate = self 딜리게이트 지정 및 didOpenWithProtocol , didCloseWith 소켓 활성 및 닫기 이벤트 감지 등록

3. URLSession.resume() 웹 소켓 연결 수행 실시

4. URLSession.resume() 요청 이후 하위 코드에 웹 소켓 연결 상태 확인 타임 아웃 DispatchQueue.main.asyncAfter 지정 및 해당 시간 이후에는 자동 연결 실패 콜백 반환 처리 수행

  >> 무한 콜백 대기 현상 방지

5. 웹 소켓 연결 요청 후 딜리게이트 didOpenWithProtocol 함수쪽으로 응답이 내려 온 경우 webSocketTask.state 상태 확인 수행 (running 상태 체크)

6. 정상적으로 웹 소켓이 running 상태 인 경우 >> webSocketTask.error 에러 발생 여부 체크 실시

7. 에러 발생 여부가 정상 인 경우 >> webSocketTask?.sendPing 핑 체크 검사 수행

8. 정상적으로 Ping 응답까지 온 경우 연결 완료 처리 아니면, 재연결 요청 메시지 반환

// --------------------------------------------------------------------------------------

 

반응형
Comments