Максимални едновременни Http връзки на хост, Alamofire?

Бих искал да увелича максималните едновременни връзки на хост в Swift, които са ограничени до 4 по подразбиране в iOS.

Използвам Alamofire.

  • Опитах се да увелича HTTPMaximumConcurrentPerHost до 50.
  • Опитах метода for in loop и все още съм ограничен.
  • Също така се опитах да обвия URL заявката в опашка за операции и все още ограничени връзки.

Виждал съм библиотека, написана на Obj-C, която казва, че използват повече от 4 връзки едновременно на хост, но не програмирам Obj-C, за да разбера дали е реална или не. Библиотека в Github

Има ли решение, което използва повече едновременни връзки на хост?

Apple казва, че това ограничение е на сесия, така че това ограничение може да бъде надвишено с помощта на няколко сесии за цялото приложение

Как може да се постигне това?

*Тествах скоростта на моя интернет и реакцията на сървъра от Чарлз и беше 250 Req/секунда, когато използвах горните методи в симулатора беше 22 Req/секунда.


person Ahmed_Shemari    schedule 14.04.2017    source източник


Отговори (1)


Това изглежда е решението:

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

Имайте предвид, че освен ако рамката не използва асинхронен IO (а аз не мисля, че NSURLSession го прави), вие сте ограничени от броя на ядрата в процесора по отношение на това колко нишки можете да изпълнявате едновременно. Отговорът, който свързах по-горе, предлага опаковане на заявките в NSOperation, така че да можете да управлявате паралелността по-подробно с NSOperationQueue.

person David S.    schedule 14.04.2017