Á 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.

Skyldar greinar