iOS 17:ssä ja uudemmissa Network.framework voi käyttää SOCKSv5-välityspalvelinta tietosuojakontekstin kautta. Liitä tämä konteksti parametreihin ennen yhteyden luomista:

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

Funktio palauttaa käynnistämättömän TLS-yhteyden. Asenna sovelluksen tilankäsittely, käynnistä se aiotussa jonossa ja vaihda sitten sovellusprotokolla sen tavallisella lähetys- ja vastaanottoreitillä.

proxy.example:1080 on SOCKS-kuuntelija. Sallituille julkisten palvelujen yhteyksille SOCKS5-välityspalvelinluettelo tarjoaa isäntä- ja porttiehdokkaita. service.example:443 pysyy kohteena. Tietosuojakonteksti soveltaa välityspalvelinasetuksiaan kyseiseen kontekstiin liittyviin yhteyksiin; riippumattoman yhteyden luominen muilla parametreilla ei peri tätä asetusta.

Tämä on Network.frameworkin yhteysrajapinta. URLSessionin välityspalvelimen ohitus tai WKWebView'n tietovarastoasetus määrittää nämä erilliset kuluttajat. NWConnectionin päälle rakennetulle WebSocketille sovelluksen on myös toimitettava asianmukaiset WebSocket-protokolla-asetukset.

Aiheeseen liittyvät artikkelit