本文主要是介绍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 将保留在。不满意的状态。
这篇关于apple watch上watchOS网络低级别和高级别区别,以及使用tcp/udp或者websocket的限制条件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!