URLSession-WebSockets troch SOCKS5 op iOS 17+ liede
Konfigurearje URLSessionWebSocketTask fia in SOCKSv5-proxy op sesje-nivo op iOS 17 of nijer en skied it liede fan WSS-ûntsifering.
De gewoane HTTPS-fersiken fan in iOS-app kinne yn in debugging-proxy ferskine wylst syn WebSocket-ferkear mist. Identifisearje earst it WebSocket-transport: URLSessionWebSocketTask kin in proxy-konfiguraasje op sesje-nivo brûke, wylst in bibleteek dy't syn eigen sockets iepenet syn eigen stipe yntegraasje nedich hat. Foar in rauwe Network.framework-ferbining op iOS 17+, konfigurearje de eigen proxy-kontekst fan NWConnection.
Op iOS 17 of nijer meitsje jo de sesje mei in eksplisite SOCKSv5-proxy:
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)
}Ferfange it dokumintaasje-adres en de poarte troch de berikbere SOCKS-lústerder fan de besteande debugging-proxy. Skeakelje dy lústerder yn yn 'e proxy-applikaasje. Syn HTTP-lústerder kin op in oare poarte wêze.
Meitsje de webSocketTask fan de weromjûn sesje. In taak dy't fia in oare URLSession makke is, erft de oerskriuwing fan dizze sesje net. In leech proxyConfigurations-array brûkt de systeemstandert; it is gjin eksplisite kar foar in direkte rûte.
Berikberens en lêsbere berjochten binne aparte mylpealen
In fysike telefoan hat in adres nedich dat de debugging-komputer berikt. Op dy telefoan wiist 127.0.0.1 nei de telefoan sels. Kontrolearje de lústerder-ynterface en de tastiene klanttagong fan 'e proxy as de ferbining der nea komt.
In SOCKS-rûte draacht de ferbining. It lêzen fan wss-ynhâld freget dêrnjonken de TLS-ynspeksje-opset fan it debugging-ark en passend fertrouwen op it apparaat. Sertifikaat-pinning of in aparte TLS-ymplemintaasje kin dy ynspeksje foarkomme sels as it ferkear de lústerder berikt.
Sykje de WebSocket-útwikseling en de berjochten nei't de ferbining oprjochte is. Allinnich in polling-fersyk fan in Socket.IO-applikaasje sjen is gjin bewiis dat syn lettere WebSocket-transport deselde rûte brûkte. Hâld dizze eksplisite debugging-konfiguraasje binnen de bedoelde ûntwikkelingsomjouwing fan 'e app.