Encamiñar os WebSocket de URLSession por SOCKS5 en iOS 17+
Configura URLSessionWebSocketTask a través dun proxy SOCKSv5 a nivel de sesión en iOS 17 ou posterior e separa o encamiñamento do descifrado WSS.
As peticións HTTPS habituais dunha app de iOS poden aparecer nun proxy de depuración mentres o seu tráfico WebSocket falta. Identifica primeiro o transporte WebSocket: URLSessionWebSocketTask pode usar unha configuración de proxy a nivel de sesión, mentres que unha biblioteca que abre os seus propios sockets necesita a súa propia integración compatible. Para unha conexión Network.framework en bruto en iOS 17+, configura o contexto de proxy propio de NWConnection.
En iOS 17 ou posterior, crea a sesión cun proxy SOCKSv5 explícito:
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)
}Substitúe o enderezo e o porto da documentación polo receptor SOCKS accesible do proxy de depuración existente. Activa ese receptor na aplicación de proxy. O seu receptor HTTP pode estar noutro porto.
Crea a webSocketTask a partir da sesión devolta. Unha tarefa creada mediante outra URLSession non herda a substitución desta sesión. Unha matriz proxyConfigurations baleira usa os valores predeterminados do sistema; non é unha selección explícita de ruta directa.
Alcanzabilidade e mensaxes lexibles son fitos separados
Un teléfono físico necesita un enderezo que chegue ao ordenador de depuración. Nese teléfono, 127.0.0.1 designa o propio teléfono. Comproba a interface do receptor e o acceso de clientes permitido do proxy cando a conexión nunca chega a el.
Unha ruta SOCKS transporta a conexión. Ler contido wss require ademais a configuración de inspección TLS da ferramenta de depuración e unha confianza axeitada no dispositivo. A fixación de certificados ou unha implementación TLS separada poden impedir esa inspección mesmo cando o tráfico chega ao receptor.
Busca o intercambio WebSocket e as mensaxes despois de establecer a conexión. Ver só unha petición de sondaxe dunha aplicación Socket.IO non demostra que o seu transporte WebSocket posterior usase a mesma ruta. Mantén esta configuración de depuración explícita dentro do entorno de desenvolvemento previsto da app.