투케이2K

70. (TWOK/LOGIC) [Ios] 웹소켓 (WebSocket) receive 실시간 메시지 수신 방법 로직 정리 본문

투케이2K 로직정리

70. (TWOK/LOGIC) [Ios] 웹소켓 (WebSocket) receive 실시간 메시지 수신 방법 로직 정리

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

[로직 정리]

정리 로직 : Ios / 아이폰

상태 : [Ios] 웹소켓 (WebSocket) receive 실시간 메시지 수신 방법 로직 정리

 

[설 명]

 

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

- 언어 : Swift

- 개발 툴 : Xcode

- 구현 기술 : URLSession webSocketTask

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






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

1. URLSession 생성 및 webSocketTask 지정 실시

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

3. URLSession.resume() 웹 소켓 연결 수행 실시 >> 딜리게이트 didOpenWithProtocol 함수쪽으로 응답이 내려 온 경우 webSocketTask.state 상태 확인 수행, 웹 소켓 연결 완료 처리 실시

4. 웹 소켓 연결이 완료 된 경우 실시간 메시지를 수신 받기 위한 webSocketTask.receive 응답 대기 함수 선언

5. publish 메시지 요청 이후 webSocketTask.receive 응답 대기 함수에서 실시간 메시지 확인 후 콜백 반환 수행

6. 메시지 콜백 반환 후 해당 webSocketTask.receive 함수에 내에서 다시 receive 응답 함수 등록 코드 등록 (재귀 호출 방식으로 자신 함수 호출)

7. 동일 방식으로 지속적으로 실시간 메시지를 받기 자동 처리 수행

  >> 단 , 웹 소켓이 끊어진 상태를 감지하기 위해 receive 함수 내에 failure , success 분기 처리 및 failure 인 경우 재귀 호출을 하지 않도록 코드 작성 필요

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

 

반응형
Comments