ກຳນົດຄ່າ SOCKS5 Proxy ຂອງ NWConnection ເທິງ iOS 17+
ເຊື່ອມຕໍ່ iOS 17 SOCKSv5 ProxyConfiguration ກັບ NWParameters.PrivacyContext ກ່ອນສ້າງ NWConnection.
ໃນ iOS 17 ແລະສູງກວ່າ, Network.framework ສາມາດໃຊ້ SOCKSv5 proxy ຜ່ານບໍລິບົດຄວາມເປັນສ່ວນຕົວ. ເຊື່ອມຕໍ່ບໍລິບົດນັ້ນກັບພາລາມິເຕີກ່ອນສ້າງການເຊື່ອມຕໍ່:
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. ສຳລັບການເຊື່ອມຕໍ່ບໍລິການສາທາລະນະທີ່ອະນຸຍາດ, ລາຍຊື່ proxy SOCKS5 ໃຫ້ຜູ້ສະໝັກເປັນໂຮສ ແລະ ພອດ. service.example:443 ຍັງເປັນປາຍທາງ. ບໍລິບົດຄວາມເປັນສ່ວນຕົວນຳໃຊ້ການຕັ້ງຄ່າ proxy ກັບການເຊື່ອມຕໍ່ທີ່ກ່ຽວຂ້ອງກັບບໍລິບົດນັ້ນ; ການສ້າງການເຊື່ອມຕໍ່ທີ່ບໍ່ກ່ຽວຂ້ອງດ້ວຍພາລາມິເຕີອື່ນຈະບໍ່ຮັບມໍລະດົກການຕັ້ງຄ່ານີ້.
ນີ້ແມ່ນອິນເຕີເຟສການເຊື່ອມຕໍ່ຂອງ Network.framework. ການແທນ proxy ຂອງ URLSession ຫຼື ການຕັ້ງຄ່າບ່ອນເກັບຂໍ້ມູນ WKWebView ຈະກຳນົດຜູ້ໃຊ້ແຍກຕ່າງຫາກເຫຼົ່ານັ້ນ. ສຳລັບ WebSocket ທີ່ສ້າງເທິງ NWConnection, ແອັບຕ້ອງໃຫ້ຕົວເລືອກໂປຣໂຕຄອນ WebSocket ທີ່ເໝາະສົມດ້ວຍ.