Në iOS 17 dhe më të rejat, Network.framework mund të aplikojë një proxy SOCKSv5 përmes një konteksti privatësie. Lidhni atë kontekst me parametrat përpara se të krijohet lidhja:

import Network

@available(iOS 17.0, *)
func makeConnection() -> NWConnection {
    let parameters = NWParameters.tls
    let context = NWParameters.PrivacyContext(description: "Service route")
    let endpoint = NWEndpoint.hostPort(
        host: "proxy.example", port: 1080)
    context.proxyConfigurations = [
        ProxyConfiguration(socksv5Proxy: endpoint)
    ]
    parameters.setPrivacyContext(context)
    return NWConnection(
        host: "service.example", port: 443, using: parameters)
}

Funksioni kthen një lidhje TLS të pa nisur. Instaloni trajtimin e gjendjes së aplikacionit, nisni atë në radhën e synuar, më pas shkëmbeni protokollin e aplikacionit përmes rrugës normale të dërgimit dhe marrjes.

proxy.example:1080 është dëgjuesi SOCKS. Për lidhjet e lejuara me shërbime publike, lista e proxy-ve SOCKS5 ofron kandidatë hosti dhe porti. service.example:443 mbetet destinacioni. Konteksti i privatësisë zbaton konfigurimet e tij të proxy-t në lidhjet e lidhura me atë kontekst; krijimi i një lidhjeje të palidhur me parametra të tjerë nuk e trashëgon këtë konfigurim.

Ky është ndërfaqja e lidhjeve e Network.framework. Një anashkalim proxy i URLSession ose një rregullim i depove të të dhënave të WKWebView konfigurojnë ato konsumatorë të veçantë. Për një WebSocket të ndërtuar mbi NWConnection, aplikacioni duhet të ofrojë gjithashtu opsionet e duhura të protokollit WebSocket.

Artikuj të ngjashëm