Максимальное количество одновременных соединений Http на хост, Alamofire?

Я бы хотел увеличить максимальное число одновременных подключений на хост в Swift, которое по умолчанию ограничено 4 в iOS.

Я использую Alamofire.

  • Я пытался увеличить HTTPMaximumConcurrentPerHost до 50.
  • Я пробовал в методе цикла и все еще ограничен.
  • Также попытался заключить URL-запрос в очередь операций и все еще ограниченные соединения.

Я видел библиотеку, написанную в Obj-C, которая сообщает, что они используют более 4-х соединений одновременно на один хост, но я не программирую Obj-C, чтобы знать, реально это или нет. Библиотека на Github

Есть ли решение, которое использует больше одновременных подключений на хост?

Apple утверждает, что это ограничение на сеанс, поэтому этот предел может быть превышен при использовании нескольких сеансов на одно приложение

Как этого можно достичь?

* Я проверил свою скорость интернета и отклик сервера от Чарльза, и это было 250 Req/Second, при использовании вышеупомянутых методов в симуляторе это было 22 Req/Second.

1 ответ

Это, кажется, решение:

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

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

Другие вопросы по тегам