WebSocket接続を保持しているバックグラウンドで(おそらく数時間または数日にわたって)実行し、データを定期的にサーバーに送信するサービスをAndroidアプリに追加したいと思います。
今、Java用のWebSocketライブラリがたくさんあるようですが、どれを使うべきかわかりません:
GitHubのTooTallNate / Java-WebSocketの 説明:100%Javaで書かれたベアボーンのWebSocketクライアントとサーバーの実装。http://java-websocket.org/- これは、「android websocket」をグーグルで検索した最初の結果にリンクされています。ただし、特にSSL接続に関しては、かなりの数の未解決の問題があり、現時点では積極的に維持されていないようです。
GitHubの koush / AndroidAsyncの説明:非同期ソケット、http(クライアント+サーバー)、websocket、およびAndroid用のsocket.ioライブラリ。スレッドではなく、nioに基づいています。-再び多くの未解決の問題がありますが、活動が維持されている/作業中のようです。
WebサイトからのプロジェクトTyrusの説明:JSR 356:WebSocket用Java API-リファレンス実装-これはOracleによって作成されました。Androidで動作するかどうかはわかりません。
Webサイトからの Jetty WebSocketクライアントAPI情報:Jettyは、WebSocketサーバーとの会話を簡単にするためのJetty WebSocketクライアントライブラリも提供しています。-もう一度:Androidで動作するかどうかはわかりません。
codebutler /アンドロイド-WebSocketを GitHubのからの説明:Android用ベア最小WebSocketを(hybi13 / RFC)クライアント-この1はで使用されている schwiz /アンドロイド-のWebSocket-例にStackOverflowの質問」の受け入れ答えである、にする方法Androidデバイスは、ウェイクロックなしでインターネットへのTCP接続を保持しますか?」
GitHubの Atmosphere / wasync Description:Node.js、Android、Javaのフォールバックトランスポートクライアントライブラリを備えたWebSockets http://async-io.org
TakahikoKawasaki / nv-websocket-client GitHubの説明:Javaでの高品質WebSocketクライアントの実装。
square / okhttp GitHubからの説明:AndroidおよびJavaアプリケーション用のHTTP + SPDYクライアント。http://square.github.io/okhttp/ -
それは持っているのWebSocketモジュールを。以下のよう scorpiodawgで言及した、OkHttpが組み込まれているのWebSocketのサポートバージョン3.5以降。GitHubの firebase / TubeSock Description:Javaで実装されたWebSocketクライアントライブラリ
Autobahn | Android(GitHub) Webサイトからの説明:Autobahn | Androidは、Autobahnプロジェクトによって作成されたJava / Android用のオープンソースネットワークライブラリで、ネイティブモバイルWebSocket / WAMPを作成するためのWebSocketプロトコルとWebアプリケーションメッセージングプロトコル(WAMP)を実装しますクライアント。- cloudsurfinは指摘し、これはWSSをサポートしていないこと。
さらに、Android用のネイティブのsocket.ioクライアントライブラリがあります。
- nkzawa / socket.io-client.java GitHubからの説明:Java用のフル機能のSocket.IOクライアントライブラリ。Socket.IOv1.0以降と互換性があります。
とにかくwebフロントエンドにnodejs / socket.ioを使用する予定なので、socket.io Androidクライアントを使用すると便利です。しかし、ネイティブクライアントは非常に若く、いくつかの未解決の問題があります。そしてそれに加えて、WebSocketのサポートはクライアント側で保証できるため、Androidアプリには(socket.io 1.0サーバーとの互換性があることを除いて)socket.ioクライアントライブラリを使用するメリットがないことを理解しています。 。
私の要件は次のとおりです。
- Android API 9以降との互換性
- SSL経由で接続する可能性
- 永続的なwakelockを保持する必要なく、接続を長期間維持します
- 利用可能なnodejs websocketサーバー実装またはsocket.ioとの互換性
これらの要件に適したライブラリはどれですか?