Beindu WebSocket URLSession í gegnum SOCKS5 á iOS 17+
Stilltu URLSessionWebSocketTask í gegnum SOCKSv5 milliþjón á setustigi á iOS 17 eða nýrri og aðskildu beiningar frá WSS-afkóðun.
Venjulegar HTTPS-beiðnir iOS-forrits geta birst í villuleitarmilliþjóni á meðan WebSocket-umferð þess vantar. Greindu fyrst WebSocket-flutninginn: URLSessionWebSocketTask getur notað milliþjónsstillingu á setustigi, en safn sem opnar eigin sokka þarf eigin studda samþættingu. Fyrir hráa Network.framework-tengingu á iOS 17+, stilltu eigið milliþjónssamhengi NWConnection.
Á iOS 17 eða nýrri býrðu til setuna með skýrum SOCKSv5 milliþjóni:
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)
}Skiptu út skjalahandbókinni og gáttinni fyrir aðgengilegan SOCKS-hlustara núverandi villuleitarmilliþjóns. Virkjaðu þann hlustara í milliþjónsforritinu. HTTP-hlustari þess getur verið á annarri gátt.
Búðu til webSocketTask úr skilaðri setunni. Verkefni sem er búið til í gegnum aðra URLSession erfir ekki yfirskrifun þessarar setu. Tómt proxyConfigurations fylki notar sjálfgefin gildi kerfisins; það er ekki skýrt val á beinni leið.
Aðgengi og læsileg skilaboð eru aðskilin tímamót
Líkamlegur sími þarf vistfang sem nær til villuleitartölvunnar. Á þeim síma táknar 127.0.0.1 símann sjálfan. Athugaðu viðmót hlustarans og leyft biðlaraaðgengi milliþjónsins þegar tengingin nær aldrei þangað.
SOCKS-leið ber tenginguna. Að lesa wss-innihald krefst að auki TLS-skoðunaruppsetningar villuleitartólsins og viðeigandi trausts á tækinu. Skírteinisfesting eða sérstök TLS-útfærsla getur komið í veg fyrir þá skoðun jafnvel þótt umferðin nái til hlustarans.
Leitaðu að WebSocket-skiptunum og skilaboðunum eftir að tengingin er komin á. Að sjá aðeins eina könnunarbeiðni frá Socket.IO-forriti er ekki sönnun þess að síðari WebSocket-flutningur þess hafi notað sömu leið. Haltu þessari skýru villuleitarstillingu innan fyrirhugaðs þróunarumhverfis forritsins.