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 రవాణా అదే మార్గాన్ని ఉపయోగించిందని రుజువు కాదు. ఈ స్పష్టమైన డీబగ్ కాన్ఫిగరేషన్‌ను యాప్ యొక్క ఉద్దేశించిన డెవలప్‌మెంట్ వాతావరణంలో ఉంచండి.

సంబంధిత వ్యాసాలు