用途:该技能针对 iOS 12–25 中基于 NWConnection 与完成处理器的网络编程模式,供暂不能使用 async/await 或需保持向后兼容的应用与库参考。若目标为 iOS 26+,资料建议改用 NetworkConnection 与 async/await(参见 axiom-network-framework-ref 技能)。
主要能力:
- NWConnection 结合 TLS:以 NWEndpoint.Host/Port 和 .tls 建立连接,用 stateUpdateHandler 处理 ready/waiting/failed/cancelled 状态,send 与 receive 使用完成回调,发送节奏由 .contentProcessed 回调控制。
- UDP 批量发送:通过 connection.batch 包裹多次 send,可把 100 个数据报从约 100 次系统调用降到约 1 次,资料称实测约降低 30% CPU(据 Instruments 测量)。适合实时音视频、游戏与高频传感器数据。
- NWListener:用 NWListener(using:on:) 接受入站连接,支持 Bonjour 服务发布(NWListener.Service)、newConnectionHandler 处理新连接,并建议用 TLS 参数、校验客户端连接、设置连接上限防 DoS。
- 网络发现:NWBrowser 结合 .bonjour 浏览本地服务,browseResultsChangedHandler 处理发现结果并通过 NWConnection(to:) 连接,避免硬编码 IP。资料称基于 mDNS,同子网内近乎即时发现,服务增删自动更新;iOS 26+ 可用 NetworkBrowser 与 Wi-Fi Aware。
使用方式:按各模式给出的代码结构配置 NWConnection、stateUpdateHandler、start(queue:)、send/receive 回调与 [weak self] 防循环引用。各模式资料标注耗时:TLS 模式 10–15 分钟,UDP 批量 10–15 分钟,NWListener 20–25 分钟,服务发现 25–30 分钟。
适用场景:支持 iOS 12–15 的应用、尚未采用 async/await 的代码库、需要向后兼容的库、点对点与本地网络服务、实时流媒体与开发测试服务器。
限制:资料未提供收费、价格与平台信息;异步/await 迁移路径仅列出状态序列、try await 与不再需要 [weak self] 等对应关系,未给出完整迁移步骤;性能数据来自资料所述测量与 WWDC 2018 演示,实际效果可能因环境而异。