នៅលើ iOS 17 និងខ្ពស់ជាងនេះ Network.framework អាចអនុវត្ត SOCKSv5 proxy តាមរយៈបរិបទឯកជនភាព។ ភ្ជាប់បរិបទនោះទៅប៉ារ៉ាម៉ែត្រមុនពេលបង្កើតការតភ្ជាប់៖

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។ សម្រាប់ការតភ្ជាប់សេវាសាធារណៈដែលបានអនុញ្ញាត បញ្ជី proxy SOCKS5 ផ្តល់បេក្ខជនម៉ាស៊ីន និងច្រក។ service.example:443 នៅតែជាគោលដៅ។ បរិបទឯកជនភាពអនុវត្តការកំណត់ proxy របស់វាទៅការតភ្ជាប់ដែលភ្ជាប់ជាមួយបរិបទនោះ។ ការបង្កើតការតភ្ជាប់មិនពាក់ព័ន្ធជាមួយប៉ារ៉ាម៉ែត្រផ្សេងទៀតមិនទទួលមរតកការកំណត់នេះទេ។

នេះគឺជាចំណុចប្រទាក់តភ្ជាប់របស់ Network.framework។ ការជំនួស proxy របស់ URLSession ឬការកំណត់ឃ្លាំងទិន្នន័យ WKWebView កំណត់អ្នកប្រើប្រាស់ដាច់ដោយឡែកទាំងនោះ។ សម្រាប់ WebSocket ដែលបង្កើតលើ NWConnection កម្មវិធីត្រូវតែផ្តល់ជម្រើសពិធីការ WebSocket សមស្របផងដែរ។

អត្ថបទពាក់ព័ន្ធ