对于我的tvOS应用程序,我需要在app启动时下载一个大约500 Mb的文件。使用NSURLSession
,将大文件直接下载到磁盘是一项简单的任务。
我可以根据网络分析器快速下载文件。图表说我在过去24秒内的平均速度约为每秒6Mb。
到目前为止一切顺利。 我的应用程序的另一部分需要通过自定义NetService进行通信所以我正在准备并发布服务:
self.service = [[NSNetService alloc] initWithDomain:@"local."
type:SERVICE_NAME
name:@"Remote receiver"
port:0];
[self.service publishWithOptions:NSNetServiceListenForConnections];
发布发生在应用程序生命的第30秒。服务didPublishMethod
后,我在网络分析器中观察到2次更改。前2个新的活动TCP连接,状态为“Listening”,用于ipv4和ipv6。第二个是第一个活动连接的下载速度惊人地下降。
正如您所看到的,在第30秒后,下载速度降低到几Kb / s。
问题是这里发生了什么? NSNetService
会干扰NSURLSession
吗?为什么发布本地服务会影响单独的TCP连接?如果连接之间共享资源,为什么NSURLSession
会收到这么小的份额?