Egy iOS-alkalmazás szokásos HTTPS-kérései megjelenhetnek egy hibakereső proxyban, miközben a WebSocket-forgalma hiányzik. Először azonosítsa a WebSocket-szállítási módot: a URLSessionWebSocketTask használhat munkamenet-szintű proxykonfigurációt, míg a saját socketeket megnyitó könyvtárnak saját támogatott integrációra van szüksége. Nyers Network.framework-kapcsolathoz iOS 17+ rendszeren állítsa be a NWConnection saját proxykörnyezetét.

iOS 17 vagy újabb rendszeren hozza létre a munkamenetet explicit SOCKSv5 proxyval:

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

Cserélje le a dokumentációs címet és portot a meglévő hibakereső proxy elérhető SOCKS-figyelőjére. Engedélyezze ezt a figyelőt a proxyalkalmazásban. HTTP-figyelője más porton is lehet.

Hozza létre a webSocketTaskot a visszakapott munkamenetből. Egy másik URLSessionen keresztül létrehozott feladat nem örökli ennek a munkamenetnek a felülírását. Az üres proxyConfigurations tömb a rendszer alapértelmezéseit használja; ez nem a közvetlen útvonal explicit kiválasztása.

Az elérhetőség és az olvasható üzenetek külön mérföldkövek

Egy fizikai telefonnak olyan címre van szüksége, amely eléri a hibakereső számítógépet. Azon a telefonon a 127.0.0.1 magát a telefont jelöli. Ellenőrizze a figyelő interfészét és a proxy engedélyezett klienshozzáférését, amikor a kapcsolat soha nem ér oda.

A SOCKS-útvonal szállítja a kapcsolatot. A wss-tartalom olvasása emellett a hibakereső eszköz TLS-vizsgálati beállítását és megfelelő bizalmat igényel az eszközön. A tanúsítvány-rögzítés vagy egy külön TLS-megvalósítás megakadályozhatja ezt a vizsgálatot akkor is, ha a forgalom eléri a figyelőt.

A kapcsolat létrejötte után keresse a WebSocket-cserét és az üzeneteket. Ha csak egy lekérdezési kérést lát egy Socket.IO-alkalmazástól, az nem bizonyítja, hogy a későbbi WebSocket-szállítása ugyanazt az útvonalat használta. Tartsa ezt az explicit hibakeresési konfigurációt az alkalmazás tervezett fejlesztési környezetén belül.

Kapcsolódó cikkek