Konfiguriranje proxyja SOCKS5 NWConnection v iOS 17+
Pred ustvarjanjem NWConnection povežite iOS 17 SOCKSv5 ProxyConfiguration z NWParameters.PrivacyContext.
V iOS 17 in novejših lahko Network.framework uporabi proxy SOCKSv5 prek konteksta zasebnosti. Pred ustvarjanjem povezave povežite ta kontekst s parametri:
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)
}
Funkcija vrne nezagnano povezavo TLS. Namestite obdelavo stanja aplikacije, jo zaženite v predvideni čakalni vrsti in nato izmenjajte protokol aplikacije po običajni poti pošiljanja in prejemanja.
proxy.example:1080 je poslušalec SOCKS. Za dovoljene povezave do javnih storitev seznam proxyjev SOCKS5 ponuja kandidate za gostitelja in vrata. service.example:443 ostaja cilj. Kontekst zasebnosti uporablja svoje konfiguracije proxyja za povezave, povezane s tem kontekstom; ustvarjanje nepovezane povezave z drugimi parametri te nastavitve ne podeduje.
To je vmesnik za povezave Network.framework. Preglasitev proxyja URLSession ali nastavitev shrambe podatkov WKWebView konfigurirata te ločene uporabnike. Za WebSocket, zgrajen na NWConnection, mora aplikacija zagotoviti tudi ustrezne možnosti protokola WebSocket.