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 പ്രോട്ടോക്കോൾ ഓപ്ഷനുകളും നൽകണം.