iOS 17+ üzərində URLSession WebSocket-i SOCKS5 vasitəsilə yönləndirin
iOS 17 və ya daha yeni versiyada URLSessionWebSocketTask-ı sessiya səviyyəli SOCKSv5 proksisi ilə konfiqurasiya edin və marşrutlaşdırmanı WSS şifrə açımından ayırın.
iOS tətbiqinin adi HTTPS sorğuları sazlama proksisində görünə bilər, WebSocket trafiki isə itkin ola bilər. Əvvəlcə WebSocket nəqliyyatını müəyyən edin: URLSessionWebSocketTask sessiya səviyyəli proksi konfiqurasiyasından istifadə edə bilər, öz soketlərini açan kitabxana isə özünün dəstəklənən inteqrasiyasına ehtiyac duyur. iOS 17+ üzərində xam Network.framework bağlantısı üçün NWConnection-un öz proksi kontekstini konfiqurasiya edin.
iOS 17 və ya daha yeni versiyada sessiyanı açıq SOCKSv5 proksisi ilə yaradın:
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)
}Sənədləşdirmə ünvanını və portu mövcud sazlama proksisinin əlçatan SOCKS dinləyicisi ilə əvəz edin. Həmin dinləyicini proksi tətbiqində aktivləşdirin. Onun HTTP dinləyicisi başqa portda ola bilər.
webSocketTask-ı qaytarılan sessiyadan yaradın. Başqa URLSession vasitəsilə yaradılan tapşırıq bu sessiyanın üstələməsini miras almır. Boş proxyConfigurations massivi sistem defoltlarından istifadə edir; bu, birbaşa marşrutun açıq seçimi deyil.
Əlçatanlıq və oxuna bilən mesajlar ayrı mərhələlərdir
Fiziki telefon sazlama kompüterinə çatan ünvana ehtiyac duyur. Həmin telefonda 127.0.0.1 telefonun özünü göstərir. Bağlantı heç vaxt ora çatmırsa, dinləyici interfeysini və proksinin icazə verdiyi müştəri girişini yoxlayın.
SOCKS marşrutu bağlantını daşıyır. wss məzmununu oxumaq əlavə olaraq sazlama alətinin TLS yoxlama quraşdırmasını və cihazda uyğun etimadı tələb edir. Sertifikat bərkidilməsi və ya ayrı TLS tətbiqi trafik dinləyiciyə çatsa belə həmin yoxlamanın qarşısını ala bilər.
Bağlantı qurulduqdan sonra WebSocket mübadiləsini və mesajları axtarın. Socket.IO tətbiqindən gələn yalnız bir sorğu-göndərmə sorğusunu görmək onun sonrakı WebSocket nəqliyyatının eyni marşrutdan istifadə etdiyinə sübut deyil. Bu açıq sazlama konfiqurasiyasını tətbiqin nəzərdə tutulan inkişaf mühiti daxilində saxlayın.