NWConnection-ის SOCKS5 პროქსის კონფიგურაცია iOS 17+-ზე
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 პროტოკოლის პარამეტრები.