투케이2K

590. (ios/swift5) [간단 소스] URLSessionWebSocketTask 간단 설명 및 사용 옵션 정리 본문

IOS

590. (ios/swift5) [간단 소스] URLSessionWebSocketTask 간단 설명 및 사용 옵션 정리

투케이2K 2024. 12. 1. 20:02

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : SWIFT5

 

[소스 코드]

 

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

- 언어 : Swift


- 개발 툴 : Xcode


- 기술 구분 : URLSessionWebSocketTask / 웹소켓

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






// --------------------------------------------------------------------------------------
[설명 정리]
// --------------------------------------------------------------------------------------

1. URLSessionWebSocketTask 은 WebSockets 프로토콜 표준을 통해 통신하는 URL 세션 작업입니다


2. URLSessionWebSocketTask 은 TCP 및 TLS를 통해 WebSocket 프레이밍 형태로 메시지 지향 전송 프로토콜을 제공하는 클래스입니다


3. URLSessionWebSocketTask 은 비동기적으로 읽기 및 쓰기를 수행하며, 이진 프레임과 UTF-8 인코딩된 텍스트 프레임을 모두 포함하는 메시지를 보내고 받을 수 있도록 합니다


4. URLSessionWebSocketTask 사용 가능 지원 버전 : 

  >> iOS 13.0 이상
  >> 아이패드OS 13.0+
  >> 맥 카탈리스트 13.1+
  >> 맥OS 10.15 이상
  >> tvOS 13.0+
  >> 비전OS 1.0+
  >> 워치OS 6.0+


5. URLSessionWebSocketTask 데이터 전송 및 수신 관련 : 

  >> func send(URLSessionWebSocketTask.Message, completionHandler: ((any Error)?) -> Void) : WebSocket 메시지를 보내고 완료 핸들러에서 결과를 수신합니다.
  >> enum URLSessionWebSocketTask.Message : 보내고 받는 메시지 유형의 열거형입니다.
  >> func receive(completionHandler : (Result<URLSessionWebSocketTask.Message, any Error>) -> Void) : 메시지의 모든 프레임을 사용할 수 있게 되면 WebSocket 메시지를 읽습니다.
  >> var maximumMessageSize : Int : 수신 호출이 오류로 실패하기 전에 버퍼링할 최대 바이트 수입니다. 


6. URLSessionWebSocketTask ping 프레임 보내기 관련 : 

  >> func sendPing(pongReceiveHandler: ((any Error)?) -> Void) : 클라이언트 측에서 ping 프레임을 보내고, 서버 엔드포인트에서 퐁을 수신하기 위한 클로저를 포함합니다.


7. URLSessionWebSocketTask 연결 종료 관련 : 

  >> func cancel(with: URLSessionWebSocketTask.CloseCode, reason: Data?) : 지정된 닫기 코드와 선택적 닫기 이유와 함께 닫기 프레임을 보냅니다.
  >> var closeCode: URLSessionWebSocketTask.CloseCode : 연결이 닫히는 이유를 나타내는 코드입니다.
  >> enum URLSessionWebSocketTask.CloseCode : WebSocket 연결이 종료된 이유를 나타내는 코드입니다.
  >> var closeReason: Data? : 연결이 닫힌 이유에 대한 추가 정보를 제공하는 데이터 블록입니다.


8. URLSessionWebSocketTask 인스턴스 메서드 관련 : 

  >> func receive() -> URLSessionWebSocketTask.Message : 웹소켓 실시간 메시지 수신 관련
  >> func send(URLSessionWebSocketTask.Message) : 웹소켓 실시간 메시지 송신 관련

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






// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------

https://developer.apple.com/documentation/foundation/urlsessionwebsockettask

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

 

반응형
Comments