2

Я использую NSURLConnection для выполнения серии HTTP-запросов на один и тот же хост асинхронно, т.е. е. с [initWithRequest:delegate:startImmediately:] и делегатом.Async NSURLConnection и keep-alive

Когда сообщение connectionDidFinishLoading приходит к делегату, я освобождаю свой объект соединения, затем инициализирую и запускаю другой, на тот же хост. Вопрос. Будет ли повторное использование базового сокета? Серверный сервер Connection:keep-alive есть, но я не могу убедиться, что его уважают. Я имею в виду, что первая связь официально не завершена, когда она выдает уведомление. Или это?

EDIT: packet sniffing on Mac. PacketLogger поставляется вместе с аппаратными средствами.

EDIT2: похоже, что он не захватывает активность симулятора iOS.

+0

Я ввел отчет об ошибке на эту же самую вещь. Невозможно узнать, было ли соединение открыто или нет. Обратите внимание, что флаг, который вы можете установить через NSURLConnection, доступен только для HTTP/1.1. Если вы хотите использовать неофициальный, но широко используемый флаг для 1.0, вы должны добавить его непосредственно в заголовок. –

+0

Сервер 1,1, и он поддерживает keep-alives в порядке. Это проблема клиента, о которой я беспокоюсь. Есть ли сниффер пакетов для Mac? –

+0

В утилите есть утилита для захвата пакетов - я только что увидел ее, когда несколько дней назад получил Network Link Conditioner. Перейдите в раздел «Загрузки», и вы увидите дополнительные загрузки, опубликованные в октябре. –

ответ

2

После некоторых попыток, Wireshark работал на Mac. Разговор TCP неразрывен между запросами - для меня это предполагает, что соединения keep-alive работают как рекламируемые. iOS 7.0.3 на симуляторе.