ໃນ 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 ທີ່ເໝາະສົມດ້ວຍ.

ບົດຄວາມທີ່ກ່ຽວຂ້ອງ