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 аппаас зөвхөн нэг polling хүсэлт харагдах нь түүний дараагийн WebSocket тээвэр ижил чиглэл ашигласан гэдгийн баталгаа биш. Энэ тодорхой дибаг тохиргоог аппын зорьсон хөгжүүлэлтийн орчинд байлгана.

Холбоотой нийтлэлүүд