Uobičajeni HTTPS zahtevi iOS aplikacije mogu se pojaviti u proxyju za otklanjanje grešaka, dok njen WebSocket saobraćaj nedostaje. Prvo identifikujte WebSocket transport: URLSessionWebSocketTask može koristiti konfiguraciju proxyja na nivou sesije, dok biblioteka koja otvara sopstvene sokete treba sopstvenu podržanu integraciju. Za sirovu Network.framework vezu na iOS 17+ konfigurišite sopstveni proxy kontekst NWConnection.

Na iOS 17 ili novijem kreirajte sesiju sa eksplicitnim SOCKSv5 proxyjem:

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)
}

Zamenite adresu i port iz dokumentacije dostupnim SOCKS slušaocem postojećeg proxyja za otklanjanje grešaka. Omogućite taj slušalac u proxy aplikaciji. Njen HTTP slušalac može biti na drugom portu.

Kreirajte webSocketTask iz vraćene sesije. Zadatak kreiran kroz drugu URLSession ne nasleđuje zamenu ove sesije. Prazan proxyConfigurations niz koristi sistemske podrazumevane vrednosti; to nije eksplicitan izbor direktne rute.

Dostupnost i čitljive poruke su odvojene prekretnice

Fizički telefon treba adresu koja dospeva do računara za otklanjanje grešaka. Na tom telefonu 127.0.0.1 označava sam telefon. Proverite interfejs slušaoca i dozvoljeni pristup klijenata proxyja kada veza nikada ne stigne do njega.

SOCKS ruta nosi vezu. Čitanje wss sadržaja dodatno zahteva podešavanje TLS inspekcije u alatu za otklanjanje grešaka i odgovarajuće poverenje na uređaju. Prikvačivanje sertifikata ili zasebna TLS implementacija mogu sprečiti tu inspekciju čak i kada saobraćaj stigne do slušaoca.

Tražite WebSocket razmenu i poruke nakon uspostavljanja veze. Videti samo jedan zahtev za anketiranje iz Socket.IO aplikacije nije dokaz da je njen kasniji WebSocket transport koristio istu rutu. Držite ovu eksplicitnu konfiguraciju za otklanjanje grešaka unutar predviđenog razvojnog okruženja aplikacije.

Povezani članci