የiOS መተግበሪያ የተለመዱ የHTTPS ጥያቄዎች በማረሚያ ፕሮክሲ ውስጥ ሊታዩ ይችላሉ፣ የWebSocket ትራፊክ ግን ጠፍቶ ሊሆን ይችላል። መጀመሪያ የWebSocket ማጓጓዣውን ይለዩ፦ URLSessionWebSocketTask የክፍለ-ጊዜ ደረጃ የፕሮክሲ ውቅርን ሊጠቀም ይችላል፤ የራሱን ሶኬቶች የሚከፍት ቤተ-መጽሐፍት ግን የራሱን የተደገፈ ውህደት ይፈልጋል። በiOS 17+ ላይ ጥሬ Network.framework ግንኙነት ለማድረግ የNWConnection የራሱን የፕሮክሲ አውድ ያዋቅሩ።

በiOS 17 ወይም ከዚያ በላይ ላይ ክፍለ-ጊዜውን በግልጽ SOCKSv5 ፕሮክሲ ይፍጠሩ፦

import Foundation
import Network

@available(iOS 17.0, *)
func makeDebugSession() -> URLSession {
    let configuration = URLSessionConfiguration.default
    let endpoint = NWEndpoint.hostPort(
        host: "192.0.2.10", port: 8889)
    configuration.proxyConfigurations = [
        ProxyConfiguration(socksv5Proxy: endpoint)
    ]
    return URLSession(configuration: configuration)
}

የሰነዱን አድራሻና ወደብ በነባሩ የማረሚያ ፕሮክሲ የሚደረስበት የSOCKS አድማጭ ይተኩ። ያንን አድማጭ በፕሮክሲ መተግበሪያው ውስጥ ያንቁ። የHTTP አድማጩ በሌላ ወደብ ላይ ሊሆን ይችላል።

webSocketTaskን ከተመለሰው ክፍለ-ጊዜ ይፍጠሩ። በሌላ URLSession በኩል የተፈጠረ ተግባር የዚህን ክፍለ-ጊዜ መሻሪያ አይወርስም። ባዶ proxyConfigurations ድርድር የስርዓቱን ነባሪ ይጠቀማል፤ ግልጽ የቀጥታ መንገድ ምርጫ አይደለም።

መድረስና የሚነበቡ መልዕክቶች የተለያዩ ደረጃዎች ናቸው

አካላዊ ስልክ የማረሚያ ኮምፒውተሩን የሚደርስ አድራሻ ይፈልጋል። በዚያ ስልክ ላይ 127.0.0.1 ስልኩን ራሱን ያመለክታል። ግንኙነቱ በፍፁም ወደዚያ በማይደርስበት ጊዜ የአድማጭ በይነገጹንና የፕሮክሲውን የተፈቀደ የደንበኛ መዳረሻ ይመልከቱ።

የSOCKS መንገድ ግንኙነቱን ይሸከማል። wss ይዘትን ማንበብ በተጨማሪ የማረሚያ መሣሪያውን የTLS ምርመራ ውቅርና በመሣሪያው ላይ ተገቢ እምነት ይፈልጋል። የምስክር ወረቀት መሰካት ወይም የተለየ የTLS አተገባበር ትራፊኩ አድማጩን ቢደርስም ያንን ምርመራ ሊያግድ ይችላል።

ግንኙነቱ ከተመሠረተ በኋላ የWebSocket ልውውጡንና መልዕክቶቹን ይፈልጉ። ከSocket.IO መተግበሪያ የመጣ የምርጫ ጥያቄ ብቻ ማየት በኋላ የመጣው የWebSocket ማጓጓዣ ተመሳሳዩን መንገድ እንደተጠቀመ ማረጋገጫ አይደለም። ይህን ግልጽ የማረሚያ ውቅር በመተግበሪያው በታሰበው የልማት ማዋቀሪያ ውስጥ ይያዙ።

ተዛማጅ ጽሑፎች