En iOS 17 kaj pli nova, Network.framework povas apliki SOCKSv5-prokurilon per privateca kunteksto. Aldonu tiun kuntekston al la parametroj antaŭ ol krei la konekton:

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

La funkcio redonas neŝovitan TLS-konekton. Instalu la statan traktadon de la aplikaĵo, ŝovu ĝin en la celita vico, kaj poste interŝanĝu la aplikaĵprotokolon per ĝia normala sendo- kaj ricevovojo.

proxy.example:1080 estas la SOCKS-aŭskultanto. Por permesitaj publikservaj konektoj, la listo de SOCKS5-prokuriloj liveras gastigantajn kaj pordajn kandidatojn. service.example:443 restas la celo. La privateca kunteksto aplikas siajn prokurilajn agordojn al konektoj asociitaj kun tiu kunteksto; krei senrilatan konekton kun aliaj parametroj ne heredas ĉi tiun agordon.

Ĉi tio estas la konekta interfaco de Network.framework. URLSession-prokurila anstataŭigo aŭ WKWebView-datumstora agordo agordas tiujn apartajn konsumantojn. Por WebSocket konstruita sur NWConnection, la aplikaĵo ankaŭ devas liveri la taŭgajn WebSocket-protokolajn opciojn.

Rilataj artikoloj