URLSession WebSocket'lerini iOS 17+ üzerinde SOCKS5 üzerinden yönlendirin
URLSessionWebSocketTask'ı iOS 17 veya üzerinde oturum düzeyinde bir SOCKSv5 proxy üzerinden yapılandırın ve yönlendirmeyi WSS şifre çözmeden ayırın.
Bir iOS uygulamasının olağan HTTPS istekleri hata ayıklama proxy'sinde görünebilirken WebSocket trafiği görünmeyebilir. Önce WebSocket taşıma biçimini belirleyin: URLSessionWebSocketTask oturum düzeyinde proxy yapılandırması kullanabilir, kendi soketlerini açan bir kitaplık ise kendi desteklenen entegrasyonuna ihtiyaç duyar. iOS 17+ üzerinde ham bir Network.framework bağlantısı için NWConnection'ın kendi proxy bağlamını yapılandırın.
iOS 17 veya üzerinde oturumu açık bir SOCKSv5 proxy ile oluşturun:
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)
}Belgedeki adresi ve bağlantı noktasını mevcut hata ayıklama proxy'sinin erişilebilir SOCKS dinleyicisiyle değiştirin. Bu dinleyiciyi proxy uygulamasında etkinleştirin. HTTP dinleyicisi başka bir bağlantı noktasında olabilir.
webSocketTask'ı döndürülen oturumdan oluşturun. Başka bir URLSession üzerinden oluşturulan görev bu oturumun geçersiz kılmasını devralmaz. Boş proxyConfigurations dizisi sistem varsayılanlarını kullanır; bu, doğrudan yolun açık bir seçimi değildir.
Erişilebilirlik ve okunabilir mesajlar ayrı kilometre taşlarıdır
Fiziksel bir telefonun hata ayıklama bilgisayarına ulaşan bir adrese ihtiyacı vardır. O telefonda 127.0.0.1 telefonun kendisini belirtir. Bağlantı oraya hiç ulaşmadığında dinleyicinin arayüzünü ve proxy'nin izin verdiği istemci erişimini denetleyin.
SOCKS yolu bağlantıyı taşır. wss içeriğini okumak ayrıca hata ayıklama aracının TLS denetim kurulumunu ve cihazda uygun güveni gerektirir. Sertifika sabitleme veya ayrı bir TLS uygulaması, trafik dinleyiciye ulaşsa bile bu denetimi engelleyebilir.
Bağlantı kurulduktan sonra WebSocket alışverişini ve mesajları arayın. Bir Socket.IO uygulamasından yalnızca tek bir yoklama isteği görmek, onun sonraki WebSocket taşımasının aynı yolu kullandığının kanıtı değildir. Bu açık hata ayıklama yapılandırmasını uygulamanın amaçlanan geliştirme ortamı içinde tutun.