apple watch上watchOS网络低级别和高级别区别,以及使用tcp/udp或者websocket的限制条件

可以直接看官方文档:TN3135: Low-level networking on watchOS | Apple Developer Documentation

高级网络:包括 URLSession 中的 HTTP 和 HTTPS 支持,以及在此之上的任何代码层。

低层网络:包括网络框架、 NSStream 和任何其他直接运行 TCP 连接或 UDP 会话的 API。这包括 URLSession 的底层方面,例如URLSessionStreamTask 和 URLSessionWebSocketTask。它还包括直接与 Bonjour 交互的 API,如 NWBrowser 和 NSNetService。

Watch OS 允许所有应用程序平等地使用高级网络。然而,它只允许应用程序在特定情况下使用低级别的网络

1.它允许一个音频流应用程序使用低级网络,同时激活了streaming audio。在 watch OS 6中引入了对此的支持。

2.它允许 VoIP 应用程序在运行 CallKit 呼叫时使用低级网络。在 watch OS 9中添加了对此的支持。

3.它允许 watch OS 上的应用程序设置应用程序服务监听器,这样 tvOS 上的同一个应用程序就可以使用 DeviceDisCoveryUI 框架建立到它的低级连接。在 watch OS 9和 tvOS 16中添加了对此的支持。

也就是说,只能在激活了streaming audio或者使用CallKit或者使用DeviceDisCoveryUI框架的时候才可以使用低级网络。

那它官网标注的这个支持watchos确实没毛病,但是......一言难尽,不让用就不让用呗

Watch OS 在这些特定情况之外阻止低级网络。例如,如果一个普通应用程序试图启动 NWConnection,该连接将保留在。Wait (_:)状态,错误为 ENETDOWN。类似地,NWPathMonitor 将保留在。不满意的状态。

相关推荐
接着奏乐接着舞。9 小时前
WebSocket心跳机制
websocket·网络协议·php
大熊猫侯佩9 小时前
Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(上)
swift·协议·protocol·coredata·协议扩展·托管基类·协议关联类型
我现在不喜欢coding12 小时前
SwiftUI何时为值类型的视图提供持久标识
swiftui·swift
songgeb13 小时前
viewWillAppear与viewWillDisappear不匹配问题
ios·objective-c·swift
chian-ocean14 小时前
深入了解UDP套接字:构建高效网络通信
网络·网络协议·udp
大熊猫侯佩15 小时前
Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
swift·协议·protocol·coredata·协议扩展·基类子类·类型不匹配
season_zhu16 小时前
RxSwift:使用UITableViewCell的注意事项
ios·swift·rxswift
2501_915106321 天前
iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈
websocket·网络协议·tcp/ip·http·网络安全·https·udp
21934109031 天前
如何把工业通信协议转换成http websocket
websocket·modbus转http·欧姆龙fins转http·西门子s7转http·工业协议转换·fins转websocket·s7转websocket
胖虎11 天前
iOS 16 SwiftUI 优雅跳转实践:用枚举路由和 NavigationStack 实现多页面导航
ios·swiftui·swift·swiftui跳转·navigationstack