Sobes.tech
Junior — Middle

Milyen eszközöket vagy könyvtárakat használtál a WebSocket protokoll megvalósításához a projektjeidben?

sobes.tech MI

Válasz az MI-től

Az iOS projektekben, amelyek WebSocket protokollal dolgoznak, gyakran a következő könyvtárakat és eszközöket használják:

  • URLSessionWebSocketTask — egy beépített osztály az iOS-ben a 13-as verziótól kezdve, amely lehetővé teszi WebSocket kapcsolatok létrehozását harmadik féltől származó könyvtárak nélkül.

  • Starscream — egy népszerű külső könyvtár Swiftben, amely kényelmes és bővíthető API-t biztosít WebSockethez, támogatja az SSL-t, pingeket, újracsatlakozásokat.

  • SocketRocket — a Facebook Objective-C-ben írt könyvtára, szintén WebSockethez használják, de jelenleg kevésbé népszerű Swift projektekben.

Starscream példakód:

import Starscream

class WebSocketManager: WebSocketDelegate {
    var socket: WebSocket!

    init(url: URL) {
        var request = URLRequest(url: url)
        request.timeoutInterval = 5
        socket = WebSocket(request: request)
        socket.delegate = self
        socket.connect()
    }

    func websocketDidConnect(socket: WebSocketClient) {
        print("Csatlakozva")
    }

    func websocketDidDisconnect(socket: WebSocketClient, error: Error?) {
        print("Lekapcsolódva: \(error?.localizedDescription ?? "nincs hiba")")
    }

    func websocketDidReceiveMessage(socket: WebSocketClient, text: String) {
        print("Fogadott szöveg: \(text)")
    }

    func websocketDidReceiveData(socket: WebSocketClient, data: Data) {
        print("Fogadott adatok: \(data.count) bájt")
    }
}

Ha a projekt minimalista és az iOS 13+ támogatás elegendő, akkor az beépített URLSessionWebSocketTask használata a legegyszerűbb és legmegbízhatóbb.