iOS 17 va undan keyingi versiyalarda Network.framework maxfiylik konteksti orqali SOCKSv5 proksisini qo‘llashi mumkin. Ulanishni yaratishdan oldin o‘sha kontekstni parametrlarga ulang:

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

Funksiya ishga tushirilmagan TLS ulanishini qaytaradi. Ilovaning holat bilan ishlashini o‘rnating, uni mo‘ljallangan navbatda ishga tushiring, so‘ngra ilova protokolini odatdagi yuborish va qabul qilish yo‘li orqali almashtiring.

proxy.example:1080 — SOCKS tinglovchisi. Ruxsat etilgan ommaviy xizmat ulanishlari uchun SOCKS5 proksi ro‘yxati xost va port nomzodlarini taqdim etadi. service.example:443 manzil bo‘lib qoladi. Maxfiylik konteksti o‘z proksi sozlamalarini shu kontekst bilan bog‘langan ulanishlarga qo‘llaydi; boshqa parametrlar bilan bog‘liq bo‘lmagan ulanish yaratish bu sozlamani meros olmaydi.

Bu Network.framework ning ulanish interfeysi. URLSession proksisini almashtirish yoki WKWebView ma’lumotlar ombori sozlamasi o‘sha alohida iste’molchilarni sozlaydi. NWConnection asosida qurilgan WebSocket uchun ilova tegishli WebSocket protokoli variantlarini ham taqdim etishi kerak.

O'xshash maqolalar