iOS 17+ 'ਤੇ SOCKS5 ਰਾਹੀਂ URLSession WebSocket ਰੂਟ ਕਰੋ
iOS 17 ਜਾਂ ਇਸ ਤੋਂ ਨਵੇਂ ਸੰਸਕਰਣ 'ਤੇ ਸੈਸ਼ਨ-ਪੱਧਰੀ SOCKSv5 ਪ੍ਰੌਕਸੀ ਰਾਹੀਂ URLSessionWebSocketTask ਸੰਰਚਿਤ ਕਰੋ ਅਤੇ ਰੂਟਿੰਗ ਨੂੰ WSS ਡੀਕ੍ਰਿਪਸ਼ਨ ਤੋਂ ਵੱਖ ਰੱਖੋ।
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 ਟ੍ਰਾਂਸਪੋਰਟ ਉਸੇ ਮਾਰਗ ਨਾਲ ਗਿਆ। ਇਹ ਸਪਸ਼ਟ ਡੀਬੱਗਿੰਗ ਸੰਰਚਨਾ ਐਪ ਦੇ ਇੱਛਤ ਵਿਕਾਸ ਵਾਤਾਵਰਣ ਅੰਦਰ ਰੱਖੋ।