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 პროტოკოლის პარამეტრები.

დაკავშირებული სტატიები