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 நெறிமுறை விருப்பங்களையும் வழங்க வேண்டும்.