iOS 17+ पर NWConnection SOCKS5 प्रॉक्सी कॉन्फ़िगर करें
NWConnection बनाने से पहले iOS 17 SOCKSv5 ProxyConfiguration को NWParameters.PrivacyContext से जोड़ें।
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 प्रोटोकॉल विकल्प भी देने होंगे।