Configura el proxy SOCKS5 de NWConnection a iOS 17+
Adjunta un ProxyConfiguration SOCKSv5 d’iOS 17 a NWParameters.PrivacyContext abans de crear una NWConnection.
A iOS 17 i posteriors, Network.framework pot aplicar un proxy SOCKSv5 mitjançant un context de privadesa. Adjunta aquest context als paràmetres abans de crear la connexió:
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 funció retorna una connexió TLS no iniciada. Instal·la la gestió d’estat de l’aplicació, inicia-la a la cua prevista i després intercanvia el protocol de l’aplicació pel seu camí normal d’enviament i recepció.
proxy.example:1080 és l’oient SOCKS. Per a connexions públiques permeses, la llista de proxys SOCKS5 proporciona candidats d’amfitrió i port. service.example:443 continua sent la destinació. El context de privadesa aplica les seves configuracions de proxy a les connexions associades amb aquest context; crear una connexió no relacionada amb altres paràmetres no hereta aquesta configuració.
Aquesta és la interfície de connexió de Network.framework. Una substitució de proxy de URLSession o un paràmetre d’emmagatzematge de dades de WKWebView configuren aquests consumidors separats. Per a un WebSocket construït sobre NWConnection, l’aplicació també ha de proporcionar les opcions de protocol WebSocket adequades.