0

ここに簡単な説明があります。

Android サービスには、サーバーからパケットを受信するスレッドがあります。これを「レシーバー」と呼びます。
のパケットを待っていinputStream.read()ます。

問題のシナリオは次のとおりです。

  1. サーバーは何らかの要求パケットを送信します。
  2. 受信側スレッドはパケットを起動して処理する必要がありますが、機能せず、ログを出力しません。
  3. サーバーは接続を閉じます。
  4. したがって、クライアントの他のスレッドは接続を閉じます。
  5. 受信機は「ECONNRESET」で突然終了します。

通常はうまく機能します。私が思うに、問題は数時間に1回発生します。

電話の過負荷またはスリープ状態が原因である可能性があります。
しかし、どちらがクリアかは判断できません。

私が思いついた解決策は現在次のようなものです:

  1. 受信スレッドの優先順位を上げます。
  2. wake lock と wifi ロックを使用します。

それは私のビジネス顧客に関連しているため、まだ試していません。この問題についてご意見をお聞かせいただけますか。

4

0 に答える 0