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 ترسیل نے وہی راستہ استعمال کیا۔ اس واضح ڈیبگنگ ترتیب کو ایپ کے مطلوبہ ڈویلپمنٹ ماحول میں رکھیں۔