20〜30台のAndroidデバイス(Androidハニカム/ ICS OSを搭載したタブレットに固有のターゲット)で実行され、ローカルWIFIネットワークを介した接続を1〜2時間維持し、データを交換する必要がある非市場アプリケーションを開発しています(それらの間のコマンドを表す単純なオブジェクト)。
ほとんどの場合、1つの特定のタブレットはコマンドを送信するサーバーのように動作し、他のデバイスはコマンドを受信するクライアントのように動作しますが、「クライアント」は「サーバー」にコマンドを送信することもあります。
この通信需要の解決策として、私はしばらくの間、
TCPクライアント/サーバープロトコルをカプセル化するオープンソースライブラリを使用しています。これはKryonetと呼ばれます。私はそれが非常に使いやすく、基本的に仕事をしていることに気づきましたが、それは時々「不安定」であり、多くの切断が発生します。この切断を行う余裕はありません。フロー全体とユースケースを損ない、クライアントのコマンドを失う原因になります。
クライアントを再接続し、クライアントが見逃したものを送信するリカバリロジックを実行していますが、ユースケースには十分ではありません。
最近、マルチキャストブロードキャストプロトコルについて聞いたことがあり、オープンソースライブラリの呼び出しでさえも見つかりました。このプロトコルを最適に実装し、使いやすいインターフェイスを公開するJGroupsです。まだ試していませんでしたが、知っている人からアドバイスをもらいました。私の目的には、TCPクライアント/サーバーの方が優れているはずです。
- 説明した動作を実装するために使用する必要がある最善のアプローチは何ですか?(必ずしも私が提案した2つのうちの1つではありません)
TIA