„iOS 17“ ir naujesnėse versijose Network.framework gali taikyti SOCKSv5 tarpinį serverį per privatumo kontekstą. Prijunkite tą kontekstą prie parametrų prieš kuriant ryšį:

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

Funkcija grąžina nepaleistą TLS ryšį. Įdiekite programos būsenos apdorojimą, paleiskite jį numatytoje eilėje, tada apsikeiskite programos protokolu įprastu siuntimo ir priėmimo keliu.

proxy.example:1080 yra SOCKS klausytojas. Leidžiamiems viešųjų paslaugų ryšiams SOCKS5 tarpinių serverių sąrašas pateikia hosto ir prievado kandidatus. service.example:443 išlieka paskirties vieta. Privatumo kontekstas taiko savo tarpinio serverio konfigūracijas ryšiams, susietiems su tuo kontekstu; nesukūrus nesusieto ryšio su kitais parametrais ši sąranka nepaveldima.

Tai Network.framework ryšio sąsaja. URLSession tarpinio serverio nepaisymas arba WKWebView duomenų saugyklos nustatymas konfigūruoja tuos atskirus vartotojus. „WebSocket“, sukurtam ant NWConnection, programa taip pat turi pateikti tinkamas „WebSocket“ protokolo parinktis.

Susiję straipsniai