Ku-iOS 17 nangaphezulu, i-Network.framework ingasebenzisa i-SOCKSv5 proxy ngomongo wobumfihlo. Xhuma lowo mongo kumapharamitha ngaphambi kokwakha uxhumano:

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)
}

Lo msebenzi ubuyisela uxhumano lwe-TLS olungakaqalwa. Faka ukuphathwa kwesimo sohlelo, lwethule kuqoqo oluhlosiwe, bese ushintshanisa iphrothokholi yohlelo ngendlela yayo evamile yokuthumela nokwamukela.

I-proxy.example:1080 iyisilaleli se-SOCKS. Kuzixhumano zesevisi yomphakathi ezivunyelwe, uhlu lwe-proxy ye-SOCKS5 lunikeza abangaba abasingathi kanye namachweba. I-service.example:443 ihlala iyindawo okudingwa kuyo. Umongo wobumfihlo usebenzisa ukucushwa kwawo kwe-proxy kuzixhumano ezihlobene nalowo mongo; ukwakha uxhumano olungahlobene namanye amapharamitha akulitholi leli sethaphu njengefa.

Lena i-interface yoxhumano ye-Network.framework. Ukushintshwa kwe-proxy kwe-URLSession noma isethingi yesitoreji sedatha se-WKWebView kucushungula labo basebenzisi abahlukene. Ku-WebSocket eyakhiwe phezu kwe-NWConnection, uhlelo kufanele futhi lunikeze izinketho zephrothokholi ye-WebSocket ezifanele.

Izihloko ezihlobene