2011-12-05 4 views
2

私はCFHttpNSUrlConnectionを使っていました。これらのクラスは、HTTPの送受信を行うたびに新しい接続を作成します。iOS:Keep Http connectionオープン

基本的には、すべての送受信を実行するには単一の接続が必要です。

オープン接続 - > httpリクエストを送信 - > httpレスポンスを受信 - > httpリクエストを送信 - > httpレスポンスを受信 - >接続を閉じます。

これを実行する方法はありますか。

+0

zeromqライブラリを使用してみてください。あなたは接続の反対側をzeromqでも実装する必要があります。 – Eimantas

答えて

2

NSUrlConnectionは自動的にHTTP 1.1プロトコルを使用して接続を開いて再利用します。 (これを参照してくださいaccepted answer)。これは、デフォルトの動作を変更するために何かをしている場合を除き、これをそのまま実行する必要があります。

ネットワークスニファを使用して接続の再利用が行われているかどうかを確認し、接続が切断されてから次の要求で再オープンされた時間を確認することをお勧めします。 Wiresharkは、優れたプロトコルをサポートする優れたネットワークアナライザです。

サードパーティライブラリを使用することもできます。 AFNetworkingはうまく、うまく設計されており、良いプレスを得る。 (私は以前はASIHttpRequestを使用していましたが、最近は積極的な開発から引退しており、そのコード構造はよりモノリシックです)。

+0

iOS 9.3を使用しているため、http keep aliveを使用できないようです。どうぞご覧くださいhttp://stackoverflow.com/questions/38773688/ios-doesnt-to-use-http-keep-alive-very-high-latency –