Уобичајени HTTPS захтеви iOS апликације могу се појавити у проксију за отклањање грешака, док њен WebSocket саобраћај недостаје. Прво идентификујте WebSocket транспорт: URLSessionWebSocketTask може користити конфигурацију проксија на нивоу сесије, док библиотека која отвара сопствене сокете треба сопствену подржану интеграцију. За сирову Network.framework везу на iOS 17+ конфигуришите сопствени прокси контекст NWConnection.

На iOS 17 или новијем креирајте сесију са експлицитним 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)
}

Замените адресу и порт из документације доступним SOCKS слушаоцем постојећег проксија за отклањање грешака. Омогућите тај слушалац у прокси апликацији. Његов HTTP слушалац може бити на другом порту.

Креирајте webSocketTask из враћене сесије. Задатак креиран кроз другу URLSession не наслеђује замену ове сесије. Празан proxyConfigurations низ користи системске подразумеване вредности; то није експлицитан избор директне руте.

Доступност и читљиве поруке су одвојене прекретнице

Физички телефон треба адресу која доспева до рачунара за отклањање грешака. На том телефону 127.0.0.1 означава сам телефон. Проверите интерфејс слушаоца и дозвољени приступ клијената проксија када веза никада не стигне до њега.

SOCKS рута носи везу. Читање wss садржаја додатно захтева подешавање TLS инспекције у алату за отклањање грешака и одговарајуће поверење на уређају. Приквачивање сертификата или засебна TLS имплементација могу спречити ту инспекцију чак и када саобраћај стигне до слушаоца.

Тражите WebSocket размену и поруке након успостављања везе. Видети само један захтев за анкетирање из Socket.IO апликације није доказ да је њен каснији WebSocket транспорт користио исту руту. Држите ову експлицитну конфигурацију за отклањање грешака унутар предвиђеног развојног окружења апликације.

Повезани чланци