ios - 如何在 NSURLSession 中禁用每个套接字的多个请求?

标签 ios http networking nsurlsession amazon-elb

我正在进行批量上传并使用 NSURLSession 在后台进行。 直到 iOS9 一切顺利,但 iOS10 有不同的行为:

如果我排队 100 个 POST 请求,它会将它们全部批处理到同一个套接字

所以所有 100 个请求都在同一个套接字上并行发生,并在几分钟后超时。

在服务器端,我们使用 AWS ELB,我猜我可以从请求 header /ELB 设置中禁用此行为。服务器本身是 node.js。有什么建议吗?

编辑:

Http header Connection: keep-alive可能是它。 但我无法更改它,我看到它使用 Charles 代理从 close 覆盖回 keep-alive

最佳答案

最终我们使用 http header Connection 解决了这个问题.

iOS 使用它的 Keep-Alive 选项,这意味着您可以在同一个套接字上发送多个请求。关闭流水线或设置 header 值都不能将其删除。 iOS强制它。 因此我们最终将其从服务器的响应中删除。它导致 iOS 为每个请求打开一个新的套接字。

这样我们就得到了与 NSURLSession 数量匹配的连接数量。允许我们在 iOS 10 和 11 的测试版后台上传大量大文件。

关于ios - 如何在 NSURLSession 中禁用每个套接字的多个请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46022851/

相关文章:

android - 强制 Android 在没有互联网的情况下使用 Wifi 网络

networking - squeak/pharo 中存在哪些高级网络对象传递设施?

ios - iOS Reachability 类如何工作?为什么 IP 地址为 169.254.0.0?

ios - 何时/什么/为什么/如何在应用程序中使用 launchOptions 的 UIApplicationOptionsURLKey 值(应用程序 :willFinishLaunchingWithOptions:)?

ios - 如何限制swift中的光标位置?

java - JSON 中 RestTemplate 中的 GET 请求

python - 基于 HTTP/REST 的文件同步

ios - 尽管相机和节点共享原点,但 SceneKit 相机旋转错误

ios - 提交不同的屏幕截图

WCF HTTP 504 错误