私は、最大20個のソケットを(並列に)開き、4秒ごとに各ソケットから更新を取得する(そしてそれぞれUIを更新する)必要があるAndroidアプリケーションを開発しています。
これは私がこれまでに試したことです:
- ソケット接続ごとにTimerTaskを作成し、ハンドラーとメッセージを使用して更新をUIスレッドに投稿します。 このソリューションの問題点:約15個のTimerTasks(それぞれが異なるスレッド上にある)を作成した後、私のアプリケーションのUI(本当に単純)が機能し始めます。2番目の問題は、各ソケットからの更新がリモートで同期されていないことです(たとえば、1つは4秒ごとに更新され、もう1つは20秒ごとに更新されます)。
- 非同期ソケットチャネルとセレクターを使用してすべての通信を処理する1つのスレッドを作成します。このソリューションの問題点: JavaにはSSLのサポートが組み込まれておらず(SSLChannelSocketではなくSSLエンジンを提供しているだけです)、SSLソケットが必要です。
提案/その他の解決策はありますか?