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

ಸಂಬಂಧಿತ ಲೇಖನಗಳು