Lungisa i-NWConnection SOCKS5 proxy ku-iOS 17+
Ngaphambi kokwakha i-NWConnection, xhuma i-iOS 17 SOCKSv5 ProxyConfiguration ne-NWParameters.PrivacyContext.
Ku-iOS 17 nangaphezulu, i-Network.framework ingasebenzisa i-SOCKSv5 proxy ngomongo wobumfihlo. Xhuma lowo mongo kumapharamitha ngaphambi kokwakha uxhumano:
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)
}
Lo msebenzi ubuyisela uxhumano lwe-TLS olungakaqalwa. Faka ukuphathwa kwesimo sohlelo, lwethule kuqoqo oluhlosiwe, bese ushintshanisa iphrothokholi yohlelo ngendlela yayo evamile yokuthumela nokwamukela.
I-proxy.example:1080 iyisilaleli se-SOCKS. Kuzixhumano zesevisi yomphakathi ezivunyelwe, uhlu lwe-proxy ye-SOCKS5 lunikeza abangaba abasingathi kanye namachweba. I-service.example:443 ihlala iyindawo okudingwa kuyo. Umongo wobumfihlo usebenzisa ukucushwa kwawo kwe-proxy kuzixhumano ezihlobene nalowo mongo; ukwakha uxhumano olungahlobene namanye amapharamitha akulitholi leli sethaphu njengefa.
Lena i-interface yoxhumano ye-Network.framework. Ukushintshwa kwe-proxy kwe-URLSession noma isethingi yesitoreji sedatha se-WKWebView kucushungula labo basebenzisi abahlukene. Ku-WebSocket eyakhiwe phezu kwe-NWConnection, uhlelo kufanele futhi lunikeze izinketho zephrothokholi ye-WebSocket ezifanele.