Ar iOS 17 a hwy, gall Network.framework gymhwyso procsi SOCKSv5 trwy gyd-destun preifatrwydd. Atodwch y cyd-destun hwnnw i’r paramedrau cyn creu’r cysylltiad:

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)
}

Mae’r ffwythiant yn dychwelyd cysylltiad TLS nas cychwynnwyd. Gosodwch driniaeth gyflwr yr ap, ei gychwyn ar y ciw bwriadedig, ac yna cyfnewid protocol yr ap drwy ei lwybr anfon a derbyn arferol.

proxy.example:1080 yw’r gwrandawr SOCKS. Ar gyfer cysylltiadau gwasanaeth cyhoeddus a ganiateir, mae rhestr procsi SOCKS5 yn darparu ymgeiswyr gwesteiwr a phorth. service.example:443 yw’r gyrchfan o hyd. Mae’r cyd-destun preifatrwydd yn cymhwyso ei ffurfweddiadau procsi i gysylltiadau sy’n gysylltiedig â’r cyd-destun hwnnw; nid yw creu cysylltiad dieithr â pharamedrau eraill yn etifeddu’r drefn hon.

Dyma ryngwyneb cysylltu Network.framework. Mae diystyru procsi URLSession neu osodiad storfa ddata WKWebView yn ffurfweddu’r defnyddwyr ar wahân hynny. Ar gyfer WebSocket a adeiladir ar NWConnection, rhaid i’r ap hefyd ddarparu’r opsiynau protocol WebSocket priodol.

Erthyglau cysylltiedig