Elekeza WebSocket za URLSession kupitia SOCKS5 kwenye iOS 17+
Sanidi URLSessionWebSocketTask kupitia proksi ya SOCKSv5 ya ngazi ya kipindi kwenye iOS 17 au zaidi na tenganisha uelekezaji na usimbuaji wa WSS.
Maombi ya kawaida ya HTTPS ya programu ya iOS yanaweza kuonekana katika proksi ya utatuzi wakati trafiki yake ya WebSocket haipo. Tambua kwanza usafirishaji wa WebSocket: URLSessionWebSocketTask inaweza kutumia usanidi wa proksi wa ngazi ya kipindi, ilhali maktaba inayofungua soketi zake mwenyewe inahitaji muunganisho wake unaotumika. Kwa muunganisho mbichi wa Network.framework kwenye iOS 17+, sanidi muktadha wa proksi wa NWConnection yenyewe.
Kwenye iOS 17 au zaidi, tengeneza kipindi kwa proksi ya SOCKSv5 iliyo wazi:
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)
}Badilisha anwani na bandari ya nyaraka na kisikilizaji cha SOCKS kinachofikiwa cha proksi ya utatuzi iliyopo. Washa kisikilizaji hicho katika programu ya proksi. Kisikilizaji chake cha HTTP kinaweza kuwa kwenye bandari nyingine.
Tengeneza webSocketTask kutoka kwa kipindi kilichorudishwa. Kazi iliyoundwa kupitia URLSession nyingine hairithi ubatilishaji wa kipindi hiki. Safu tupu ya proxyConfigurations hutumia chaguo-msingi za mfumo; si uchaguzi wazi wa njia ya moja kwa moja.
Ufikiaji na ujumbe unaosomeka ni hatua tofauti
Simu halisi inahitaji anwani inayofikia kompyuta ya utatuzi. Kwenye simu hiyo, 127.0.0.1 inaelekeza kwenye simu yenyewe. Angalia kiolesura cha kisikilizaji na ufikiaji wa mteja unaoruhusiwa wa proksi wakati muunganisho haufikii huko kamwe.
Njia ya SOCKS hubeba muunganisho. Kusoma maudhui ya wss kunahitaji zaidi usanidi wa ukaguzi wa TLS wa chombo cha utatuzi na uaminifu ufaao kwenye kifaa. Kuweka saini za cheti au utekelezaji tofauti wa TLS kunaweza kuzuia ukaguzi huo hata trafiki inapofikia kisikilizaji.
Tafuta mabadilishano ya WebSocket na ujumbe baada ya muunganisho kuanzishwa. Kuona ombi moja tu la uchunguzi kutoka kwa programu ya Socket.IO si uthibitisho kwamba usafirishaji wake wa WebSocket wa baadaye ulitumia njia hiyo hiyo. Weka usanidi huu wazi wa utatuzi ndani ya mazingira ya ukuzaji yaliyokusudiwa ya programu.