Notice
Recent Posts
Recent Comments
Link
투케이2K
590. (ios/swift5) [간단 소스] URLSessionWebSocketTask 간단 설명 및 사용 옵션 정리 본문
[개발 환경 설정]
개발 툴 : 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
// --------------------------------------------------------------------------------------
반응형
'IOS' 카테고리의 다른 글
Comments