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 ಪ್ರೋಟೋಕಾಲ್ ಆಯ್ಕೆಗಳನ್ನು ಸಹ ಒದಗಿಸಬೇಕು.