iOS 17+ -ზე URLSession WebSocket-ების SOCKS5-ით მარშრუტიზაცია
კონფიგურაცია URLSessionWebSocketTask სესიის დონის SOCKSv5 პროქსის მეშვეობით iOS 17 ან უფრო ახალ ვერსიაზე და გამოყავით მარშრუტიზაცია WSS-ის გაშიფვრისგან.
iOS აპლიკაციის ჩვეულებრივი HTTPS მოთხოვნები შეიძლება გამოჩნდეს გამართვის პროქსიში, მაშინ როცა მისი WebSocket ტრაფიკი აკლია. ჯერ დაადგინეთ WebSocket-ის გადაცემის გზა: URLSessionWebSocketTask შეიძლება იყენებდეს სესიის დონის პროქსის კონფიგურაციას, ხოლო ბიბლიოთეკას, რომელიც საკუთარ სოკეტებს ხსნის, საკუთარი მხარდაჭერილი ინტეგრაცია სჭირდება. iOS 17+ -ზე ნედლი Network.framework კავშირისთვის კონფიგურაცია NWConnection-ის საკუთარი პროქსის კონტექსტი.
iOS 17 ან უფრო ახალ ვერსიაზე შექმენით სესია გამოკვეთილი SOCKSv5 პროქსით:
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)
}შეცვალეთ დოკუმენტაციის მისამართი და პორტი არსებული გამართვის პროქსის ხელმისაწვდომი SOCKS მსმენელით. ჩართეთ ეს მსმენელი პროქსის აპლიკაციაში. მისი HTTP მსმენელი შეიძლება სხვა პორტზე იყოს.
შექმენით webSocketTask დაბრუნებული სესიიდან. სხვა URLSession-ის მეშვეობით შექმნილი დავალება არ მემკვიდრეობით იღებს ამ სესიის გადაფარვას. ცარიელი proxyConfigurations მასივი იყენებს სისტემის ნაგულისხმევებს; ეს არ არის პირდაპირი მარშრუტის გამოკვეთილი არჩევანი.
ხელმისაწვდომობა და წაკითხვადი შეტყობინებები ცალკე ეტაპებია
ფიზიკურ ტელეფონს სჭირდება მისამართი, რომელიც აღწევს გამართვის კომპიუტერამდე. ამ ტელეფონზე 127.0.0.1 თავად ტელეფონს აღნიშნავს. შეამოწმეთ მსმენელის ინტერფეისი და პროქსის ნებადართული კლიენტის წვდომა, როცა კავშირი არასდროს აღწევს იქამდე.
SOCKS მარშრუტი ატარებს კავშირს. wss შიგთავსის წაკითხვას დამატებით სჭირდება გამართვის ხელსაწყოს TLS შემოწმების კონფიგურაცია და შესაბამისი ნდობა მოწყობილობაზე. სერტიფიკატის ჩამაგრებამ ან ცალკე TLS იმპლემენტაციამ შეიძლება ხელი შეუშალოს ამ შემოწმებას მაშინაც, როცა ტრაფიკი მსმენელამდე აღწევს.
კავშირის დამყარების შემდეგ მოძებნეთ WebSocket გაცვლა და შეტყობინებები. Socket.IO აპლიკაციიდან მხოლოდ ერთი გამოკითხვის მოთხოვნის დანახვა არ არის მტკიცებულება, რომ მისი შემდგომი WebSocket გადაცემა იმავე მარშრუტს იყენებდა. შეინახეთ ეს გამოკვეთილი გამართვის კონფიგურაცია აპლიკაციის განზრახული განვითარების გარემოში.