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 ਪ੍ਰੋਟੋਕੋਲ ਵਿਕਲਪ ਵੀ ਦੇਣੇ ਚਾਹੀਦੇ ਹਨ।