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 પરિવહન એ જ માર્ગ વાપર્યું. આ સ્પષ્ટ ડિબગિંગ ગોઠવણીને એપના ઇચ્છિત વિકાસ વાતાવરણમાં રાખો.