2011-12-05 141 views
2

我一直在使用CFHttpNSUrlConnection。這些類每次都會創建一個新的連接來執行http發送和接收。iOS:保持Http連接打開

基本上我需要一個連接來執行我所有的發送和接收。

打開連接 - >發送http請求 - >接收http響應 - >發送http請求 - >接收http響應 - >關閉連接。

有沒有辦法做到這一點。

+0

嘗試使用zeromq庫。您需要在zeromq中實現連接的另一端。 – Eimantas

回答

2

NSUrlConnection將通過HTTP 1.1協議自動保持打開並重新使用連接。 (見這個accepted answer)。它應該開箱即用,除非你正在做某件事來修改它的默認行爲。

我建議使用網絡嗅探器來驗證連接重用是否正在發生,並驗證連接可能會在多長時間後被丟棄(並因此在下次請求時重新打開)。 Wireshark是一款極好的網絡分析儀,具有良好的協議支持。

您也可以使用第三方庫; AFNetworking不錯,精心設計,並獲得良好的新聞。 (我曾經使用ASIHttpRequest,但最近已從有效開發中退役,其代碼結構更單一。)

+0

使用iOS 9.3,即時通訊不能夠使用HTTP似乎保持活着。請看看http://stackoverflow.com/questions/38773688/ios-doesnt-to-use-http-keep-alive-very-high-latency –