iOS 17+ पर SOCKS5 के ज़रिए URLSession WebSocket रूट करें
iOS 17 या उससे नए पर सत्र-स्तरीय SOCKSv5 प्रॉक्सी के ज़रिए URLSessionWebSocketTask कॉन्फ़िगर करें और रूटिंग को WSS डिक्रिप्शन से अलग रखें।
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 परिवहन उसी मार्ग से गया। इस स्पष्ट डिबगिंग कॉन्फ़िगरेशन को ऐप के इच्छित विकास परिवेश के भीतर रखें।