Féadann gnáthiarrachtaí HTTPS aipe iOS teacht chun solais i seachfhreastalaí dífhabhtaithe fad a bhíonn a tráchta WebSocket ar iarraidh. Sainaithin an t-iompar WebSocket ar dtús: is féidir le URLSessionWebSocketTask cumraíocht seachfhreastalaí ar leibhéal seisiúin a úsáid, ach teastaíonn a chomhtháthú tacaithe féin ó leabharlann a osclaíonn a socaí féin. Le haghaidh nasc amh Network.framework ar iOS 17+, cumraigh comhthéacs seachfhreastalaí NWConnection féin.

Ar iOS 17 nó níos nuaí, cruthaigh an seisiún le seachfhreastalaí SOCKSv5 follasach:

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)
}

Cuir seoladh agus port an doiciméid in ionad éisteoir SOCKS inrochtana an tseachfhreastalaí dífhabhtaithe atá ann cheana. Cumasaigh an t-éisteoir sin san fheidhmchlár seachfhreastalaí. Féadann a éisteoir HTTP a bheith ar phort eile.

Cruthaigh an webSocketTask ón seisiún a fhilltear. Ní fhaigheann tasc a chruthaítear trí URLSession eile sáraíocht an tseisiúin seo le hoidhreacht. Úsáideann eagar proxyConfigurations folamh réamhshocruithe an chórais; ní rogha fhollasach ar ród díreach é.

Is clocha míle ar leithligh iad inrochtaineacht agus teachtaireachtaí inléite

Teastaíonn seoladh ó fhón fisiceach a shroicheann an ríomhaire dífhabhtaithe. Ar an bhfón sin, ainmníonn 127.0.0.1 an fón féin. Seiceáil comhéadan an éisteora agus rochtain cheadaithe cliant an tseachfhreastalaí nuair nach sroicheann an nasc riamh é.

Iompraíonn ród SOCKS an nasc. Teastaíonn socruithe iniúchta TLS na huirlise dífhabhtaithe agus muinín chuí ar an ngléas freisin chun ábhar wss a léamh. Féadann pionnadh deimhnithe nó cur i bhfeidhm TLS ar leithligh an t-iniúchadh sin a chosc fiú nuair a shroicheann an trácht an t-éisteoir.

Lorg an malartú WebSocket agus na teachtaireachtaí tar éis an nasc a bhunú. Ní cruthú é iarraidh pobalbhreithe amháin ó fheidhmchlár Socket.IO a fheiceáil gur úsáid a iompar WebSocket níos déanaí an ród céanna. Coinnigh an chumraíocht dífhabhtaithe fhollasach seo laistigh de thimpeallacht forbartha bheartaithe an aip.

Ailt ghaolmhara