Drejtimi i WebSocket-eve të URLSession përmes SOCKS5 në iOS 17+
Konfiguroni URLSessionWebSocketTask përmes një proxy SOCKSv5 në nivel sesioni në iOS 17 ose më të ri dhe ndani drejtimin nga deshifrimi i WSS.
Kërkesat e zakonshme HTTPS të një aplikacioni iOS mund të shfaqen në një proxy korrigjimi ndërsa trafiku i tij WebSocket mungon. Identifikoni fillimisht transportin WebSocket: URLSessionWebSocketTask mund të përdorë një konfigurim proxy në nivel sesioni, ndërsa një bibliotekë që hap vetë socket-et e saj ka nevojë për integrimin e vetëm të mbështetur. Për një lidhje të papërpunuar Network.framework në iOS 17+, konfiguroni kontekstin e vetë proxy-t të NWConnection.
Në iOS 17 ose më të ri, krijoni sesionin me një proxy SOCKSv5 të qartë:
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)
}Zëvendësoni adresën dhe portën e dokumentacionit me dëgjuesin SOCKS të arritshëm të proxy-t korrigjues ekzistues. Aktivizoni atë dëgjues në aplikacionin proxy. Dëgjuesi i tij HTTP mund të jetë në një portë tjetër.
Krijoni webSocketTask nga sesioni i kthyer. Një detyrë e krijuar përmes një URLSession tjetër nuk trashëgon anulimin e këtij sesioni. Një varg proxyConfigurations bosh përdor parazgjedhjet e sistemit; nuk është një zgjedhje e qartë e rrugës direkte.
Arritshmëria dhe mesazhet e lexueshme janë gurë të veçantë kilometrikë
Një telefon fizik ka nevojë për një adresë që arrin kompjuterin e korrigjimit. Në atë telefon, 127.0.0.1 emërton vetë telefonin. Kontrolloni ndërfaqen e dëgjuesit dhe aksesin e lejuar të klientëve të proxy-t kur lidhja nuk arrin kurrë atje.
Një rrugë SOCKS mbart lidhjen. Leximi i përmbajtjes wss kërkon gjithashtu konfigurimin e inspektimit TLS të mjetit të korrigjimit dhe besim të përshtatshëm në pajisje. Kapja e certifikatave ose një zbatim i veçantë TLS mund ta pengojnë atë inspektim edhe kur trafiku arrin te dëgjuesi.
Kërkoni shkëmbimin WebSocket dhe mesazhet pasi lidhja të jetë vendosur. Të shohësh vetëm një kërkesë sondazhi nga një aplikacion Socket.IO nuk është provë që transporti i tij i mëvonshëm WebSocket përdori të njëjtën rrugë. Mbani këtë konfigurim të qartë korrigjimi brenda mjedisit të synuar të zhvillimit të aplikacionit.