每个主机最大并发Http连接,Alamofire?

时间:2017-04-14 12:05:59

标签: ios swift alamofire nsurlsession afhttpsessionmanager

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

我正在使用 Alamofire

  • 我尝试将HTTPMaximumConcurrentPerHost增加到50.
  • 我尝试过in循环方法但仍然有限。
  • 还尝试将url请求包装到操作队列中,并且仍然限制连接。

我见过用Obj-C编写的库告诉他们每个主机同时使用4个以上的连接,但是我没有编写Obj-C来知道它是否真实。 Library on Github

是否存在每个主机使用更多并发连接的解决方案?

  

Apple说这个限制是每个会话,所以这个限制可以   超过每个应用程序使用多个会话

如何实现?

  

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

1 个答案:

答案 0 :(得分:0)

这似乎是the solution

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

请记住,除非框架使用异步IO(并且我不认为NSURLSession会这样做),否则您受到处理器中核心数量的限制,即您可以同时执行多少个线程。我上面链接的答案建议将请求包装在NSOperation中,以便您可以使用NSOperationQueue更精细地管理并发。