Set NWConnection SOCKS5 proxy upp á iOS 17+
Fest eina iOS 17 SOCKSv5 ProxyConfiguration til NWParameters.PrivacyContext, áðrenn tú stovnar eina NWConnection.
Á iOS 17 og seinni kann Network.framework seta eina SOCKSv5 proxy í verk gjøgnum ein privatlívssamanheng. Fest tann samanhengin til parametrarnar, áðrenn sambandið verður stovnað:
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)
}
Funksjónin gevur eitt TLS-samband, sum ikki er byrjað. Set støðustýringina hjá tólinum upp, byrja tað á ætlaða raðnum, og skift síðan tólskipanini gjøgnum vanliga sendi- og móttekuvegin.
proxy.example:1080 er SOCKS-lyttarin. Fyri loyvd almenn tænastusambond veitir SOCKS5-proxylistin verts- og portkandidatar. service.example:443 verður framvegis málið. Privatlívssamanhengið setur proxysetningar sínar í verk á sambond, sum eru knýtt at tí samanhenginum; at stovna eitt ótengt samband við øðrum parametrum arvar ikki hesa uppseting.
Hetta er sambandsskiftið hjá Network.framework. Ein URLSession-proxy-yviritur ella ein WKWebView-dátugoymsluuppseting setur hesar aðskildu brúkaranar upp. Fyri eina WebSocket, sum er bygd á NWConnection, má tólið eisini veita hóskandi WebSocket-skipanarvalmøguleikar.