Les peticions HTTPS habituals d'una app d'iOS poden aparèixer en un proxy de depuració mentre el seu trànsit WebSocket no hi és. Identifica primer el transport WebSocket: URLSessionWebSocketTask pot fer servir una configuració de proxy a nivell de sessió, mentre que una biblioteca que obre els seus propis sockets necessita la seva pròpia integració compatible. Per a una connexió Network.framework en brut a iOS 17+, configura el context de proxy propi de NWConnection.

A iOS 17 o posterior, crea la sessió amb un proxy SOCKSv5 explícit:

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

Substitueix l'adreça i el port de la documentació pel receptor SOCKS accessible del proxy de depuració existent. Activa aquest receptor a l'aplicació de proxy. El seu receptor HTTP pot ser en un altre port.

Crea la webSocketTask a partir de la sessió retornada. Una tasca creada mitjançant una altra URLSession no hereta la substitució d'aquesta sessió. Una matriu proxyConfigurations buida fa servir els valors predeterminats del sistema; no és una selecció explícita de ruta directa.

Abastabilitat i missatges llegibles són fites separades

Un telèfon físic necessita una adreça que arribi a l'ordinador de depuració. En aquest telèfon, 127.0.0.1 designa el propi telèfon. Comprova la interfície del receptor i l'accés de clients permès del proxy quan la connexió no hi arriba mai.

Una ruta SOCKS transporta la connexió. Llegir contingut wss requereix a més la configuració d'inspecció TLS de l'eina de depuració i una confiança adequada al dispositiu. El fixament de certificats o una implementació TLS separada poden impedir aquesta inspecció fins i tot quan el trànsit arriba al receptor.

Busca l'intercanvi WebSocket i els missatges després d'establir la connexió. Veure només una petició d'enquestació d'una aplicació Socket.IO no és prova que el seu transport WebSocket posterior fes servir la mateixa ruta. Mantén aquesta configuració de depuració explícita dins de l'entorn de desenvolupament previst de l'app.

Articles relacionats