[swift] Swift로 WebSocket 요청 보내기

WebSocket은 웹 브라우저와 서버 사이의 양방향 통신을 위해 사용되는 프로토콜입니다. 이번 블로그에서는 Swift로 WebSocket 요청을 보내는 방법을 알아보겠습니다.

라이브러리 설치

WebSocket 요청을 보내기 위해 Starscream이라는 Swift 기반 WebSocket 라이브러리를 사용할 것입니다. 먼저, Podfile에 아래의 라인을 추가합니다.

pod 'Starscream'

그리고 터미널에서 다음 명령어를 실행하여 라이브러리를 설치합니다.

pod install

Socket 연결하기

WebSocket을 사용하기 위해 먼저 WebSocket 객체를 생성해야 합니다. 아래의 예제 코드를 참고하여 연결을 수행합니다.

import Starscream

class WebSocketManager: WebSocketDelegate {
    var socket: WebSocket!

    init() {
        let url = URL(string: "ws://example.com")!
        socket = WebSocket(request: URLRequest(url: url))
        socket.delegate = self
        socket.connect()
    }

    func websocketDidConnect(socket: WebSocketClient) {
        print("Socket connected")
    }

    func websocketDidDisconnect(socket: WebSocketClient, error: Error?) {
        print("Socket disconnected: \(error?.localizedDescription ?? "")")
    }

    // 메시지 수신 처리
    func websocketDidReceiveMessage(socket: WebSocketClient, text: String) {
        print("Received message: \(text)")
    }
}

위의 예제 코드에서는 WebSocketDelegate를 구현하여 WebSocket 이벤트에 대한 처리를 합니다. websocketDidConnect, websocketDidDisconnect, websocketDidReceiveMessage 등의 메서드를 사용하여 Socket 연결 및 메시지 처리를 할 수 있습니다.

메시지 전송하기

WebSocket을 통해 서버로 메시지를 보내려면 socket.write(string:) 메서드를 사용합니다. 아래의 예제 코드를 참고하여 메시지 전송을 수행합니다.

let message = "Hello, server!"
socket.write(string: message)

메시지를 전송할 때는 문자열 형태로 전달할 수 있습니다.

Socket 닫기

WebSocket 작업이 끝나면 연결을 닫아주어야 합니다. socket.disconnect() 메서드를 사용하여 Socket 연결을 닫을 수 있습니다.

socket.disconnect()

결론

이번 블로그에서는 Swift를 사용하여 WebSocket 요청을 보내는 방법을 알아보았습니다. WebSocket을 사용하여 애플리케이션에서 실시간으로 데이터를 주고받을 수 있습니다. Starscream 라이브러리를 사용하면 간단하게 WebSocket을 구현할 수 있습니다.

더 자세한 내용은 Starscream GitHub 저장소를 참고하시기 바랍니다.