Звичайні 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 використав той самий маршрут. Тримайте цю явну налагоджувальну конфігурацію в межах передбаченого середовища розробки застосунку.

Схожі статті