Os pedidos HTTPS comuns de uma app iOS podem aparecer num proxy de depuração enquanto o seu tráfego WebSocket falta. Identifique primeiro o transporte WebSocket: o URLSessionWebSocketTask pode usar uma configuração de proxy ao nível da sessão, enquanto uma biblioteca que abre os seus próprios sockets precisa da sua própria integração suportada. Para uma ligação Network.framework em bruto no iOS 17+, configure o contexto de proxy próprio do NWConnection.

No iOS 17 ou posterior, crie a sessão com um 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)
}

Substitua o endereço e a porta da documentação pelo ouvinte SOCKS acessível do proxy de depuração existente. Ative esse ouvinte na aplicação proxy. O seu ouvinte HTTP pode estar noutra porta.

Crie a webSocketTask a partir da sessão devolvida. Uma tarefa criada através de outro URLSession não herda a substituição desta sessão. Uma matriz proxyConfigurations vazia usa os valores predefinidos do sistema; não é uma seleção explícita de rota direta.

Alcançabilidade e mensagens legíveis são marcos separados

Um telemóvel físico precisa de um endereço que chegue ao computador de depuração. Nesse telemóvel, 127.0.0.1 designa o próprio telemóvel. Verifique a interface do ouvinte e o acesso de clientes permitido do proxy quando a ligação nunca lá chega.

Uma rota SOCKS transporta a ligação. Ler conteúdo wss exige ainda a configuração de inspeção TLS da ferramenta de depuração e uma confiança adequada no dispositivo. A fixação de certificados ou uma implementação TLS separada podem impedir essa inspeção mesmo quando o tráfego chega ao ouvinte.

Procure a troca WebSocket e as mensagens depois de a ligação estar estabelecida. Ver apenas um pedido de sondagem de uma aplicação Socket.IO não prova que o seu transporte WebSocket posterior usou a mesma rota. Mantenha esta configuração de depuração explícita dentro do ambiente de desenvolvimento previsto da app.

Artigos relacionados