1

我想增加 Swift 中每个主机的最大并发连接数,在 iOS 中默认限制为 4。

我正在使用Alamofire

  • 我尝试将 HTTPMaximumConcurrentPerHost 增加到 50。
  • 我已经尝试了循环方法,但仍然有限。
  • 还尝试将 url 请求包装到操作队列中,但连接仍然有限。

我看到一个用 Obj-C 编写的库告诉他们每个主机同时使用超过 4 个连接,但我没有对 Obj-C 进行编程以知道它是否真实。 Github 上的图书馆

有没有一种解决方案可以为每个主机使用更多并发连接?

Apple 表示此限制是针对每个会话的,因此可以使用每个整个应用程序的多个会话来超过此限制

那如何实现?

*我已经通过Charles测试了我的互联网速度和服务器响应,它是 250 Req/Second,在模拟器中使用上述方法时,它是 22 Req/Second。

4

1 回答 1

0

这似乎是解决方案

let configuration = NSURLSessionConfiguration.defaultSessionConfiguration()
configuration.HTTPMaximumConnectionsPerHost = 50
configuration.timeoutIntervalForRequest = 30
let manager = Alamofire.Manager(configuration: configuration)

请记住,除非框架使用异步 IO(我不认为 N​​SURLSession 会这样做),否则您会受到处理器内核数量的限制,因为您可以同时执行多少线程。我在上面链接的答案建议将请求包装起来,NSOperation以便您可以使用NSOperationQueue.

于 2017-04-14T12:39:07.340 回答