Bežné požiadavky HTTPS aplikácie pre iOS sa môžu objaviť v ladiacej proxy, zatiaľ čo jej prevádzka WebSocket chýba. Najprv určite transport WebSocket: URLSessionWebSocketTask môže použiť konfiguráciu proxy na úrovni relácie, kým knižnica, ktorá otvára vlastné sokety, potrebuje vlastnú podporovanú integráciu. Pre surové pripojenie Network.framework na iOS 17+ nakonfigurujte vlastný kontext proxy NWConnection.

Na iOS 17 alebo novšom vytvorte reláciu s explicitnou 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 adresu a port z dokumentácie dostupným poslucháčom SOCKS existujúcej ladiacej proxy. Tento poslucháč zapnite v aplikácii proxy. Jej poslucháč HTTP môže byť na inom porte.

Vytvorte webSocketTask z vrátenej relácie. Úloha vytvorená cez inú URLSession nededia prepísanie tejto relácie. Prázdne pole proxyConfigurations používa systémové predvolené hodnoty; nie je to výslovná voľba priamej trasy.

Dostupnosť a čitateľné správy sú samostatné míľniky

Fyzický telefón potrebuje adresu, ktorá dosiahne počítač na ladenie. Na tomto telefóne 127.0.0.1 označuje samotný telefón. Skontrolujte rozhranie poslucháča a povolený prístup klientov proxy, keď sa pripojenie k nemu nikdy nedostane.

Trasa SOCKS prenáša pripojenie. Čítanie obsahu wss navyše vyžaduje nastavenie inšpekcie TLS v ladiacom nástroji a primeranú dôveru v zariadení. Pripnutie certifikátov alebo samostatná implementácia TLS môžu tejto inšpekcii zabrániť aj vtedy, keď prevádzka dosiahne poslucháča.

Po nadviazaní pripojenia hľadajte výmenu WebSocket a správy. Vidieť iba jednu požiadavku na dopytovanie z aplikácie Socket.IO nie je dôkazom, že jej neskorší transport WebSocket použil rovnakú trasu. Udržujte túto výslovnú ladiacu konfiguráciu v zamýšľanom vývojovom prostredí aplikácie.

Súvisiace články