דורכפירן URLSession WebSocket דורך SOCKS5 אויף iOS 17+
קאָנפיגורירן URLSessionWebSocketTask דורך אַ SOCKSv5 פּראָקסי אויף סעסיע־מדרגה אויף iOS 17 אָדער שפּעטער און צעשיידן דאָס רוטירן פֿון WSS דעקריפּטירונג.
די געוויינטלעכע HTTPS בעטן פֿון אַן iOS אַפּ קענען דערשייַנען אין אַ דיבאַגינג פּראָקסי בשעת זייַן WebSocket פֿאַרקער פֿעלט. ערשט באַשטימט דעם WebSocket טראַנספּאָרט: URLSessionWebSocketTask קען נוצן אַ פּראָקסי־קאָנפֿיגוראַציע אויף סעסיע־מדרגה, בשעת אַ ביבליאָטעק וואָס עפנט אירע אייגענע סאָקעטן דאַרף איר אייגענע געשטיצטע אינטעגראַציע. פֿאַר אַ רוי Network.framework פֿאַרבינדונג אויף iOS 17+, קאָנפיגורירט 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־טראַנספּאָרט האָט גענוצט דעם זעלביקן רוט. האַלט די דאָזיקע עקספּליציטע דיבאַגינג־קאָנפֿיגוראַציע אין דער געמיינטער אַנטוויקלונג־סבֿיבה פֿון דער אַפּ.