Звычайныя 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 выкарыстаў той жа маршрут. Трымайце гэтую яўную канфігурацыю адладкі ў межах прызначанага асяроддзя распрацоўкі праграмы.

Падобныя артыкулы