SwiftWebSocket 활용 가이드
1. 프로젝트 구조 및 설명
SwiftWebSocket의 소스 코드 구조는 간결하며 주요 구성 요소는 다음과 같습니다:
SwiftWebSocket
├── Sample # 샘플 프로젝트 디렉토리
│ ├── Dependencies # 샘플 프로젝트 의존성 관리
│ └── SwiftWebSocketSample.xcworkspace # 샘플 프로젝트 작업 공간
├── LICENSE # 라이선스 파일
├── Package.swift # Swift 패키지 매니저 설정 파일
└── Sources # 주요 소스 코드 디렉토리
└── WebSocket.swift # WebSocket 클래스 구현 파일
Sample: SwiftWebSocket을 사용하는 간단한 예제 프로젝트를 포함합니다.Package.swift: SwiftWebSocket의 메타데이터를 정의하며, 버전 및 의존성 정보를 포함합니다.Sources/WebSocket.swift: WebSocket 객체의 모든 기능을 포함하는 SwiftWebSocket의 핵심 구현 파일입니다.
2. 프로젝트 시작 방법 소개
SwiftWebSocket은 독립 실행형 애플리케이션이 아니라 라이브러리이므로 특정 시작 파일이 없습니다. 애플리케이션에서 WebSocket 클래스의 인스턴스를 생성하여 연결을 초기화해야 합니다. 다음은 기본적인 사용 예제입니다:
import SwiftWebSocket
let serverURL = URL(string: "ws://your-websocket-server-url")!
let webSocket = WebSocket(url: serverURL)
webSocket.onOpen = { print("웹소켓 연결 성공!") }
webSocket.onError = { error in print("웹소켓 오류: \(error)") }
webSocket.onClose = { code, reason, clean in print("웹소켓 종료: \(code), \(reason), \(clean)") }
webSocket.onMessage = { message in print("받은 메시지: \(message)") }
// 연결 시작
webSocket.connect()
위 예제에서는 SwiftWebSocket 라이브러리를 임포트하고, WebSocket 인스턴스를 생성하여 다양한 이벤트 핸들러를 설정한 후 connect() 메서드를 호출하여 연결을 시작합니다.
3. 프로젝트 설정 파일 설명
SwiftWebSocket 자체적으로 특별한 설정 파일이 필요하지 않습니다. 그 이유는 API를 통해 직접 코드에서 설정하고 제어하기 때문입니다. 예를 들어, onOpen, onError, onClose, onMessage 콜백 함수를 설정하여 WebSocket의 생명주기 이벤트를 처리할 수 있으며, send(data:) 또는 send(text:) 메서드를 사용하여 데이터를 전송할 수 있습니다.
프로젝트에서 SwiftWebSocket을 사용할 때 네트워크 권한(예: Info.plist 파일의 App Transport Security 설정)을 구성하고, 필요한 경우 네트워크 상태 변화를 처리해야 할 수도 있습니다.
SwiftWebSocket은 기본적으로 SSL/TLS 자가 서명 인증서를 지원하지 않습니다. 만약 웹소켓 서버가 자가 서명된 인증서를 사용한다면, 인증서 검증을 무시하는 추가 코드를 애플리케이션에 추가해야 할 수 있습니다.
SwiftWebSocket을 프로젝트에 완전히 통합하려면 오류 처리, 재시도 전략, 허트비트 메커니즘 등 실제 환경에서의 요구 사항을 고려해야 합니다. 고급 사용법에 대해서는 공식 저장소의 샘플 프로젝트와 문서를 참조하세요.