Конфигурирање на SOCKS5 прокси преку NWConnection на iOS 17+
Поврзете iOS 17 SOCKSv5 ProxyConfiguration со NWParameters.PrivacyContext пред да создадете NWConnection.
На 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 протоколот.