אויף 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 דאַטן־קראָם איינשטעלונג קאָנפיגורירט די באַזונדערע פֿאַרניצער. פֿאַר אַ WebSocket געבויט אויף NWConnection מוז די אַפּ אויך צושטעלן די פּאַסיקע WebSocket פּראָטאָקאָל־אָפּציעס.

פֿאַרבונדענע אַרטיקלען