セットアップは次のとおりです。
で作成された入力ストリームがありCFReadStreamCreateForStreamedHTTPRequest
ます。プロパティセットがありkCFStreamPropertyHTTPAttemptPersistentConnection
ます(接続をプールしています)。接続しているサーバーは、チャンク エンコーディングでデータを返しています。
通常のケースでは、すべてがうまく機能します。私の問題は、問題がある場合、話しているサーバーが接続を切断することです。私の人生では、切断された接続を検出する方法がわかりません。
私のストリームのイベント コールバックではkCFStreamEventEndEncountered
、エラーは報告されていませんが、Wireshark では、ストリームの終わりのチャンク エンコーディング マーカーが送信されるずっと前に、接続が FIN になっていることがはっきりとわかります。
kCFURLErrorNetworkConnectionLost
サーバーが接続を切断したときにエラーイベントが発生するはずですが、最後に遭遇しただけです。
どんな提案でも大歓迎です。