对于我的 tvOS 应用程序,我需要在应用程序启动时下载一个大约 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 个变化。ipv4 和 ipv6 状态为“正在侦听”的前 2 个新的活动 TCP 连接。第二个是第一个活动连接的下载速度令人惊讶地急剧下降。
如您所见,在第 30 秒后下载速度降至几 Kb/s。问题是这里发生了什么?NSNetService
干扰吗NSURLSession
?为什么本地服务的发布会影响单独的 TCP 连接?如果在连接之间共享资源,为什么会NSURLSession
收到这么小的份额?