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 փոխադրամիջոցն օգտագործել է նույն երթուղին։ Պահեք այս բացահայտ վրիպազերծման կարգավորումը հավելվածի նախատեսված մշակման միջավայրում։

Առնչվող հոդվածներ