Konfigurer NWConnection SOCKS5-proxy på iOS 17+
Kopla ein iOS 17 SOCKSv5 ProxyConfiguration til NWParameters.PrivacyContext før du opprettar ein NWConnection.
På iOS 17 og nyare kan Network.framework bruke ein SOCKSv5-proxy via ein personvernkontekst. Kopla den konteksten til parametrane før tilkoplinga blir oppretta:
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)
}
Funksjonen returnerer ei TLS-tilkopling som ikkje er starta. Installer tilstandsbehandlinga til appen, start henne i den tiltenkte køen og byt deretter applikasjonsprotokollen gjennom den vanlege sende- og mottekvegen.
proxy.example:1080 er SOCKS-lyttaren. For tillatne tilkoplingar til offentlege tenester leverer SOCKS5-proxylista verts- og portkandidatar. service.example:443 blir verande destinasjonen. Personvernkonteksten brukar proxykonfigurasjonane sine på tilkoplingar som er knytte til den konteksten; å opprette ei urelatert tilkopling med andre parametrar arvar ikkje dette oppsettet.
Dette er tilkoplingsgrensesnittet til Network.framework. Ei URLSession-proxyoverstyring eller ei WKWebView-datalagerinnstilling konfigurerer desse separate forbrukarane. For ein WebSocket bygd på NWConnection må appen òg levera dei rette WebSocket-protokollvala.