En iOS-apps vanliga HTTPS-förfrågningar kan dyka upp i en felsökningsproxy medan dess WebSocket-trafik saknas. Identifiera först WebSocket-transporten: URLSessionWebSocketTask kan använda en proxykonfiguration på sessionsnivå, medan ett bibliotek som öppnar egna sockets behöver sin egen stödda integration. För en rå Network.framework-anslutning på iOS 17+ konfigurerar du NWConnections egen proxykontext.

På iOS 17 eller senare skapar du sessionen med en explicit SOCKSv5-proxy:

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

Byt ut dokumentationsadressen och porten mot den nåbara SOCKS-lyssnaren i den befintliga felsökningsproxyn. Aktivera den lyssnaren i proxyprogrammet. Dess HTTP-lyssnare kan ligga på en annan port.

Skapa webSocketTask från den returnerade sessionen. En uppgift som skapas via en annan URLSession ärver inte den här sessionens åsidosättning. En tom proxyConfigurations-array använder systemets standardvärden; det är inte ett uttryckligt val av direkt rutt.

Nåbarhet och läsbara meddelanden är separata milstolpar

En fysisk telefon behöver en adress som når felsökningsdatorn. På den telefonen anger 127.0.0.1 själva telefonen. Kontrollera lyssnarens gränssnitt och proxyns tillåtna klientåtkomst när anslutningen aldrig når fram.

En SOCKS-rutt bär anslutningen. Att läsa wss-innehåll kräver dessutom felsökningsverktygets TLS-inspektionsinställning och lämpligt förtroende på enheten. Certifikatpinning eller en separat TLS-implementation kan hindra den inspektionen även när trafiken når lyssnaren.

Leta efter WebSocket-utbytet och meddelandena efter att anslutningen upprättats. Att bara se en enda pollingbegäran från en Socket.IO-applikation är inget bevis för att dess senare WebSocket-transport använde samma rutt. Håll den här uttryckliga felsökningskonfigurationen inom appens avsedda utvecklingsmiljö.

Relaterade artiklar