iOS 17+ ରେ NWConnection SOCKS5 ପ୍ରକ୍ସି କନଫିଗର କରନ୍ତୁ
NWConnection ସୃଷ୍ଟି କରିବା ପୂର୍ବରୁ iOS 17 SOCKSv5 ProxyConfiguration କୁ NWParameters.PrivacyContext ସହିତ ସଂଯୋଗ କରନ୍ତୁ।
iOS 17 ଏବଂ ପରବର୍ତ୍ତୀ ସଂସ୍କରଣରେ Network.framework ଏକ ଗୋପନୀୟତା ପ୍ରସଙ୍ଗ ମାଧ୍ୟମରେ SOCKSv5 ପ୍ରକ୍ସି ପ୍ରୟୋଗ କରିପାରେ। ସଂଯୋଗ ସୃଷ୍ଟି କରିବା ପୂର୍ବରୁ ସେହି ପ୍ରସଙ୍ଗକୁ ପାରାମିଟର ସହିତ ସଂଯୋଗ କରନ୍ତୁ:
import Network
@available(iOS 17.0, *)
func makeConnection() -> NWConnection {
let parameters = NWParameters.tls
let context = NWParameters.PrivacyContext(description: "Service route")
let endpoint = NWEndpoint.hostPort(
host: "proxy.example", port: 1080)
context.proxyConfigurations = [
ProxyConfiguration(socksv5Proxy: endpoint)
]
parameters.setPrivacyContext(context)
return NWConnection(
host: "service.example", port: 443, using: parameters)
}
ଫଙ୍କସନ ଏକ ଆରମ୍ଭ ନହୋଇଥିବା TLS ସଂଯୋଗ ଫେରାଏ। ଆପର ସ୍ଥିତି ପରିଚାଳନା ସ୍ଥାପନ କରନ୍ତୁ, ଏହାକୁ ଉଦ୍ଦିଷ୍ଟ ଧାଡ଼ିରେ ଆରମ୍ଭ କରନ୍ତୁ, ତାପରେ ଏହାର ସାଧାରଣ ପଠାଇବା ଓ ଗ୍ରହଣ ପଥରେ ଆପ ପ୍ରୋଟୋକଲ ବିନିମୟ କରନ୍ତୁ।
proxy.example:1080 ହେଉଛି SOCKS ଶ୍ରୋତା। ଅନୁମତିପ୍ରାପ୍ତ ସାର୍ବଜନୀନ ସେବା ସଂଯୋଗ ପାଇଁ SOCKS5 ପ୍ରକ୍ସି ତାଲିକା ହୋଷ୍ଟ ଓ ପୋର୍ଟ ପ୍ରାର୍ଥୀ ଯୋଗାଏ। service.example:443 ଗନ୍ତବ୍ୟ ରହେ। ଗୋପନୀୟତା ପ୍ରସଙ୍ଗ ତାହାର ପ୍ରକ୍ସି କନଫିଗରେସନକୁ ସେହି ପ୍ରସଙ୍ଗ ସହିତ ସମ୍ବନ୍ଧିତ ସଂଯୋଗରେ ପ୍ରୟୋଗ କରେ; ଅନ୍ୟ ପାରାମିଟର ସହିତ ଅସମ୍ପୃକ୍ତ ସଂଯୋଗ ସୃଷ୍ଟି କଲେ ଏହି ସେଟଅପ ଉତ୍ତରାଧିକାରରେ ମିଳେ ନାହିଁ।
ଏହା Network.framework ର ସଂଯୋଗ ଇଣ୍ଟରଫେସ। URLSession ପ୍ରକ୍ସି ଓଭରରାଇଡ କିମ୍ବା WKWebView ଡାଟା-ଷ୍ଟୋର ସେଟିଂ ସେହି ପୃଥକ ଗ୍ରାହକମାନଙ୍କୁ କନଫିଗର କରେ। NWConnection ଉପରେ ନିର୍ମିତ WebSocket ପାଇଁ, ଆପକୁ ଉପଯୁକ୍ତ WebSocket ପ୍ରୋଟୋକଲ ବିକଳ୍ପ ମଧ୍ୟ ଯୋଗାଇବାକୁ ହେବ।