በ 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 ፕሮቶኮል አማራጮችም ማቅረብ አለበት።

ተዛማጅ ጽሑፎች