Konfigureer NWConnection SOCKS5-proxy op iOS 17+
Koppel ’n iOS 17 SOCKSv5 ProxyConfiguration aan NWParameters.PrivacyContext voordat jy ’n NWConnection skep.
Op iOS 17 en later kan Network.framework ’n SOCKSv5-proxy deur ’n privaatheidskonteks toepas. Koppel daardie konteks aan die parameters voordat die verbinding geskep word:
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)
}
Die funksie gee ’n TLS-verbinding terug wat nog nie begin het nie. Installeer die toepassing se toestandhantering, begin dit op die beoogde tou en wissel dan die toepassingsprotokol deur sy normale stuur- en ontvangpad uit.
proxy.example:1080 is die SOCKS-luisteraar. Vir toegelate openbare diensverbindings verskaf die SOCKS5-proxylys gasheer- en poortkandidate. service.example:443 bly die bestemming. Die privaatheidskonteks pas sy proxykonfigurasies toe op verbindings wat met daardie konteks geassosieer word; die skep van ’n onverwante verbinding met ander parameters erf nie hierdie opstelling nie.
Dit is Network.framework se verbindingskoppelvlak. ’n URLSession-proxy-oorheersing of ’n WKWebView-databerginstelling konfigureer daardie aparte verbruikers. Vir ’n WebSocket wat op NWConnection gebou is, moet die toepassing ook die toepaslike WebSocket-protokolopsies verskaf.