Fuq iOS 17 u aktar ġodda, Network.framework jista’ japplika proxy SOCKSv5 permezz ta’ kuntest tal-privatezza. Qabbad dak il-kuntest mal-parametri qabel ma tinħoloq il-konnessjoni:

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

Il-funzjoni tirritorna konnessjoni TLS li ma nbdietx. Installa l-immaniġġjar tal-istat tal-app, ibdiha fil-kju maħsub, imbagħad ibdel il-protokoll tal-app mill-passaġġ normali tiegħu tat-tbaħħir u tal-wasla.

proxy.example:1080 huwa l-listeners SOCKS. Għall-konnessjonijiet tas-servizz pubbliku permessi, il-lista tal-proxy SOCKS5 tipprovdi kandidati tal-host u tal-port. service.example:443 jibqa’ d-destinazzjoni. Il-kuntest tal-privatezza japplika l-konfigurazzjonijiet tal-proxy tiegħu għall-konnessjonijiet assoċjati ma’ dak il-kuntest; il-ħolqien ta’ konnessjoni mhux relatata b’parametri oħra ma jirtx din is-setup.

Dan huwa l-interface tal-konnessjoni ta’ Network.framework. Sostituzzjoni tal-proxy ta’ URLSession jew setting tal-maħżen tad-dejta ta’ WKWebView jikkonfiguraw dawk il-konsumaturi separati. Għal WebSocket mibni fuq NWConnection, l-app trid ukoll tipprovdi l-għażliet xierqa tal-protokoll WebSocket.

Artikli relatati