투케이2K

580. (ios/swift5) [간단 소스] NWConnection 웹소켓 Websocket 통신 연결 옵션 정리 - NWProtocolWebSocket.Options 본문

IOS

580. (ios/swift5) [간단 소스] NWConnection 웹소켓 Websocket 통신 연결 옵션 정리 - NWProtocolWebSocket.Options

투케이2K 2024. 12. 1. 00:34

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : SWIFT5

 

[소스 코드]

 

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

- 언어 : Swift


- 개발 툴 : Xcode


- 사전) NWConnection 설명 :

  >> NWConnection 는 로컬 엔드포인트와 원격 엔드포인트 간의 양방향 데이터 연결 (TCP , UDP) 을 수행할 수 있습니다

  >> NWConnection 를 사용하기 위해서는 import Network 패키지 호출 정의가 필요합니다

  >> NWParameters 설정 가능 옵션 : 

   - tls
   - tcp
   - dtls
   - udp
   - quic
   - quicDatagram

  >> 참고 사이트 : https://developer.apple.com/documentation/network/nwconnection

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






// --------------------------------------------------------------------------------------
[NWProtocolWebSocket.Options 설명 정리]
// --------------------------------------------------------------------------------------

1. NWProtocolWebSocket.Options 은 WebSocket 을 사용하는 방법을 구성하기 위한 옵션 컨테이너입니다


2. NWProtocolWebSocket.Options 사용 가능 버전 : 

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


3. WebSocket 옵션 구성 : 

  >> init (NWProtocolWebSocket.Version) : WebSocket 연결 옵션의 기본 세트를 초기화합니다.
  >> enum Version : 지원되는 WebSocket 프로토콜 버전입니다.
  >> var autoReplyPing : Bool : Ping 메시지를 사용자에게 전달하는 대신 연결이 자동으로 응답하는지 여부를 나타내는 부울입니다.
  >> var maximumMessageSize : Int : WebSocket 연결에서 수신할 수 있는 최대 메시지 크기(바이트)입니다.


4. 클라이언트 핸드셰이크 구성 : 

  >> func setAdditionalHeaders([(name: String, value: String)]) : WebSocket 핸드셰이크 중에 클라이언트가 보낼 추가 HTTP 헤더 필드를 설정합니다.
  >> func setSubprotocols([String]) : 연결 설정 중에 WebSocket 서버에 표시되는 지원되는 애플리케이션 프로토콜 목록을 추가합니다.
  >> var skipHandshake : Bool : 기본 연결이 설정되면 WebSocket 프로토콜이 핸드셰이크를 건너뛰고 데이터 프레이밍을 시작할지 여부를 나타내는 부울입니다.


5. 서버 핸드셰이크 처리 : 

  >> func setClientRequestHandler(DispatchQueue, handler: ([String], [(name: String, value: String)]) -> NWProtocolWebSocket.Response) : 인바운드 WebSocket 클라이언트 핸드셰이크에 대한 서버로서 반응할 핸들러를 설정합니다.
  >> struct Response : 서버에서 클라이언트로 전송된 WebSocket 핸드셰이크 응답입니다.

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






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

https://developer.apple.com/documentation/network/nwprotocolwebsocket/options

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

 

반응형
Comments