Běžné požadavky HTTPS aplikace pro iOS se mohou objevit v ladicí proxy, zatímco její provoz WebSocket chybí. Nejprve určete transport WebSocket: URLSessionWebSocketTask může použít konfiguraci proxy na úrovni relace, zatímco knihovna, která otevírá vlastní sockety, potřebuje vlastní podporovanou integraci. Pro surové připojení Network.framework na iOS 17+ nakonfigurujte vlastní kontext proxy NWConnection.

Na iOS 17 nebo novějším vytvořte relaci s explicitní proxy 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)
}

Nahraďte dokumentační adresu a port dostupným posluchačem SOCKS stávající ladicí proxy. Tento posluchač zapněte v aplikaci proxy. Jeho posluchač HTTP může být na jiném portu.

Vytvořte webSocketTask z vrácené relace. Úloha vytvořená přes jinou URLSession nedědí přepsání této relace. Prázdné pole proxyConfigurations používá systémové výchozí hodnoty; není to výslovná volba přímé trasy.

Dostupnost a čitelné zprávy jsou samostatné milníky

Fyzický telefon potřebuje adresu, která dosáhne na ladicí počítač. Na tomto telefonu 127.0.0.1 označuje samotný telefon. Zkontrolujte rozhraní posluchače a povolený přístup klientů proxy, když se připojení k němu nikdy nedostane.

Trasa SOCKS nese připojení. Čtení obsahu wss navíc vyžaduje nastavení inspekce TLS v ladicím nástroji a odpovídající důvěru v zařízení. Přišpendlení certifikátů nebo samostatná implementace TLS může této inspekci zabránit, i když provoz dosáhne posluchače.

Po navázání připojení hledejte výměnu WebSocket a zprávy. Vidět pouze jeden požadavek na dotazování z aplikace Socket.IO není důkazem, že její pozdější transport WebSocket použil stejnou trasu. Udržujte tuto výslovnou ladicí konfiguraci v zamýšleném vývojovém prostředí aplikace.

Související články