Kuandaa proksi ya SOCKS5 ya NWConnection kwenye iOS 17+
Kabla ya kuunda NWConnection, unganisha iOS 17 SOCKSv5 ProxyConfiguration na NWParameters.PrivacyContext.
Kwenye iOS 17 na zaidi, Network.framework inaweza kutumia proksi ya SOCKSv5 kupitia muktadha wa faragha. Unganisha muktadha huo na vigezo kabla ya kuunda muunganisho:
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)
}
Kitendakazi hurudisha muunganisho wa TLS ambao haujaanzishwa. Sakinisha usimamizi wa hali wa programu, uanzishe kwenye foleni inayokusudiwa, kisha ubadilishane itifaki ya programu kupitia njia yake ya kawaida ya kutuma na kupokea.
proxy.example:1080 ndiye msikilizaji wa SOCKS. Kwa miunganisho ya huduma za umma inayoruhusiwa, orodha ya proksi za SOCKS5 hutoa wagombea wa mwenyeji na bandari. service.example:443 inabaki kuwa lengo. Muktadha wa faragha hutumia usanidi wake wa proksi kwa miunganisho inayohusiana na muktadha huo; kuunda muunganisho usiohusiana na vigezo vingine hakurithi usanidi huu.
Huu ni kiolesura cha muunganisho cha Network.framework. Ubatshaji wa proksi wa URLSession au mpangilio wa hifadhi ya data wa WKWebView husanidi watumiaji hao tofauti. Kwa WebSocket iliyojengwa juu ya NWConnection, programu lazima pia itoe chaguo sahihi za itifaki ya WebSocket.