په iOS 17 او وروسته کې Network.framework کولی شي SOCKSv5 پروکسي د خصوصیت د زمینې له لارې پلي کړي. د اړیکې له جوړولو مخکې هغه زمینه له پارامترونو سره ونښلوه:

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

فنکشن یوه نه پیل شوې TLS اړیکه بیرته راګرځوي. د اپلیکیشن د حالت سمبالښت نصب کړه، په ټاکل شوې قطار کې یې پیل کړه، بیا د اپلیکیشن پروتوکول د هغې د عادي لېږلو او ترلاسه کولو له لارې تبادله کړه.

proxy.example:1080 د SOCKS اورېدونکی دی. د اجازه ورکړل شوو عامه خدمتونو اړیکو لپاره د SOCKS5 پروکسي لیست د کوربه او پورټ نوماندان وړاندې کوي. service.example:443 منزل پاتې کېږي. د خصوصیت زمینه خپلې پروکسي تنظیمات هغو اړیکو ته پلي کوي چې له هغې زمینې سره تړاو لري؛ د نورو پارامترونو سره ناتړلې اړیکه جوړول دا تنظیم نه میراث کوي.

دا د Network.framework د اړیکې انټرفیس دی. د URLSession پروکسي بدلون یا د WKWebView د معلوماتو زېرمې تنظیم هغه جلا مصرفوونکي تنظیموي. د NWConnection پر بنسټ جوړ شوي WebSocket لپاره، اپلیکیشن باید د WebSocket پروتوکول مناسب انتخابونه هم وړاندې کړي.

اړوندې مقالې