Konfigurasi Proksi SOCKS5 NWConnection pada iOS 17+
Lampirkan iOS 17 SOCKSv5 ProxyConfiguration pada NWParameters.PrivacyContext sebelum mencipta NWConnection.
Pada iOS 17 dan lebih baharu, Network.framework boleh menggunakan proksi SOCKSv5 melalui konteks privasi. Lampirkan konteks itu pada parameter sebelum mencipta sambungan:
import Network
@available(iOS 17.0, *)
func makeConnection() -> NWConnection {
let parameters = NWParameters.tls
let context = NWParameters.PrivacyContext(description: "Service route")
let endpoint = NWEndpoint.hostPort(
host: "proxy.example", port: 1080)
context.proxyConfigurations = [
ProxyConfiguration(socksv5Proxy: endpoint)
]
parameters.setPrivacyContext(context)
return NWConnection(
host: "service.example", port: 443, using: parameters)
}
Fungsi ini mengembalikan sambungan TLS yang belum dimulakan. Pasang pengendalian keadaan aplikasi, mulakannya pada baris gilir yang dimaksudkan, kemudian tukar protokol aplikasi melalui laluan hantar dan terima biasa.
proxy.example:1080 ialah pendengar SOCKS. Untuk sambungan perkhidmatan awam yang dibenarkan, senarai proksi SOCKS5 menyediakan calon hos dan port. service.example:443 kekal sebagai destinasi. Konteks privasi menggunakan konfigurasi proksinya pada sambungan yang dikaitkan dengan konteks itu; mencipta sambungan tidak berkaitan dengan parameter lain tidak mewarisi tetapan ini.
Ini ialah antara muka sambungan Network.framework. Penggantian proksi URLSession atau tetapan stor data WKWebView mengkonfigurasi pengguna berasingan itu. Untuk WebSocket yang dibina atas NWConnection, aplikasi juga mesti menyediakan pilihan protokol WebSocket yang sesuai.