ユーザーのアクティビティに基づいてネットワーキングを行うアプリを入手しました。アプリが送信する通常のペイロードは 100 ~ 200 バイトなので、基本的に重い作業はありません。これらのタスクは通常、問題なく動作しています (統計的に 99.9% またはリクエストは問題ありません) が、これらのネットワーク アクティビティとは別に、私のアプリはハートビートをサーバー (Amazon の EC2 (us-east1-) 上にあります) に送り返しています。 d それが問題になる場合)))。ハートビートは、HTTPS を介した通常の POST リクエストとして 10 秒ごとに送信されます。これは、通常のネットワーク アクティビティで観察されるよりも失敗率がはるかに高いため、実際には機能していません。最近の 7 時間のテストでは、ハートビート リクエストの 25% が失敗しました (しかし、私は 35% の低下さえ見ました)、通常はその速度を維持します。SSL を無効にすると、テスト デバイスのエラー率は 8% のままです。これらの障害が何らかのパターンに分類される場合 (つまり、4 日ごとなど、レート ベースのフィルタリングを意味する場合や、1 時間または 1 日ごとに失敗する場合は、リクエストの上限がどこかに設定されていることを意味する場合、おそらくそれほど大きな問題にはならないでしょう)。 )。しかし、このようなことは起こりません。10 ~ 15 のリクエストが連続して失敗することがあり、これはハートビートに悪影響を及ぼします。さらに悪いことに、リクエストが失敗した瞬間に、同じデバイスからサーバーに接続でき、これは問題なく動作しています)。この問題は、サポートされているすべてのバージョンの Android (2.2 以降) で発生します。しかし、このようなことは起こりません。10 ~ 15 のリクエストが連続して失敗することがあり、これはハートビートに悪影響を及ぼします。さらに悪いことに、リクエストが失敗した瞬間に、同じデバイスからサーバーに接続でき、これは問題なく動作しています)。この問題は、サポートされているすべてのバージョンの Android (2.2 以降) で発生します。しかし、このようなことは起こりません。10 ~ 15 のリクエストが連続して失敗することがあり、これはハートビートに悪影響を及ぼします。さらに悪いことに、リクエストが失敗した瞬間に、同じデバイスからサーバーに接続でき、これは問題なく動作しています)。この問題は、サポートされているすべてのバージョンの Android (2.2 以降) で発生します。
私は最近のhttpclientandroidlibを使用して HTTP リクエストを実行しているため、lib が原因ではないかと疑い始めたので、Android Asynchronous HTTP Clientに切り替えましたが、実際には何も変わりませんでした。私は主に次のような例外を取得しています:
NoHttpResponseException: ターゲット サーバーが応答しませんでした ターゲット サーバーが応答しませんでした URL: https://xx.xx.xx.xx/heartbeat/
また、SSL が有効な接続の場合:
javax.net.ssl.SSLException: 読み取りエラー: ssl=0x784bc588: システム コール中の I/O エラー、ピアによる接続リセット 読み取りエラー: ssl=0x784bc588: システム コール中の I/O エラー、ピアによる接続リセット URL: https: //xx.xx.xx.xx/ハートビート/
私は基本的に最初に犯人を追跡したいので、アプリが主にモバイルネットワーク上で実行されていることを知っているので、この問題をさらに進める方法についての提案をお待ちしています.