Agordi SOCKS5-prokurilon de NWConnection en iOS 17+
Aldonu iOS 17 SOCKSv5 ProxyConfiguration al NWParameters.PrivacyContext antaŭ ol krei NWConnection.
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.