Saya ingin menambahkan Layanan ke aplikasi Android saya yang berjalan di latar belakang memegang koneksi WebSocket (mungkin lebih dari beberapa jam atau bahkan berhari-hari) dan secara teratur mengirimkan beberapa data ke server.
Sekarang tampaknya ada banyak perpustakaan WebSocket untuk Java, dan saya tidak yakin yang mana yang harus saya gunakan:
TooTallNate / Java-WebSocket Deskripsi dari GitHub: Klien barebones dan implementasi server WebSocket ditulis dalam Java 100%. http://java-websocket.org/ - Yang ini terhubung dengan hasil pertama saya di googling "android websocket" . Namun, ada beberapa masalah terbuka, terutama tentang koneksi SSL, dan tampaknya tidak dipelihara secara aktif saat ini.
koush / AndroidAsync Deskripsi dari GitHub: Asynchronous socket, http (client + server), websocket, dan socket.io library untuk android. Berdasarkan nio, bukan utas. - Lagi-lagi banyak masalah terbuka, tetapi tampaknya tetap dipelihara / dikerjakan.
Deskripsi Proyek Tyrus dari Situs Web: JSR 356: Java API for WebSocket - Implementasi Referensi - Ini dibuat oleh Oracle. Tidak yakin apakah itu berfungsi di Android.
Info API Klien Jetty WebSocket dari Situs Web: Jetty juga menyediakan Perpustakaan Klien Jetty WebSocket untuk menulis membuat berbicara dengan server WebSocket lebih mudah. - Lagi: Tidak yakin apakah itu berfungsi di Android.
codebutler / android-websockets Deskripsi dari GitHub: Klien websockets minimal (hybi13 / RFC) untuk Android - Yang ini digunakan dalam contoh schwiz / android-websocket , yang merupakan jawaban yang diterima untuk pertanyaan StackOverflow " Bagaimana membuat Perangkat Android memegang koneksi TCP ke Internet tanpa kunci bangun? "
Atmosphere / wasync Deskripsi dari GitHub: WebSockets dengan fallback mengangkut pustaka klien untuk Node.js, Android dan Java http://async-io.org
TakahikoKawasaki / nv-websocket-client Deskripsi dari GitHub: Implementasi klien WebSocket berkualitas tinggi di Jawa.
square / okhttp Deskripsi dari GitHub: Klien HTTP + SPDY untuk aplikasi Android dan Java. http://square.github.io/okhttp/ -
Ini memiliki modul Websocket .Seperti yang disebutkan oleh scorpiodawg , OkHttp memiliki dukungan websocket bawaan sejak versi 3.5.firebase / TubeSock Deskripsi dari GitHub: Pustaka klien WebSocket diimplementasikan di Jawa
Autobahn | Android ( GitHub ) Deskripsi dari Situs web: Autobahn | Android adalah pustaka jaringan open-source untuk Java / Android yang dibuat oleh proyek Autobahn yang mengimplementasikan Protokol WebSocket dan Protokol Perpesanan Aplikasi Web (WAMP) untuk membuat WebSocket / WAMP yang asli untuk seluler klien. - cloudsurfin menunjukkan bahwa ini tidak memiliki dukungan untuk wss.
Selain itu, ada perpustakaan klien socket.io asli untuk Android:
- nkzawa / socket.io-client.java Deskripsi dari GitHub: Perpustakaan Klien Socket.IO berfitur lengkap untuk Java, yang kompatibel dengan Socket.IO v1.0 dan yang lebih baru.
Untuk menggunakan klien socket.io Android akan berguna bagi saya, karena saya berencana untuk menggunakan nodejs / socket.io untuk antarmuka web. Tetapi klien asli cukup muda dan memiliki beberapa masalah terbuka. Dan di samping itu, saya memahami bahwa aplikasi android tidak memiliki manfaat menggunakan perpustakaan klien socket.io (selain tidak kompatibel dengan server socket.io 1.0), karena dukungan WebSocket dapat dijamin di sisi klien .
Persyaratan saya adalah sebagai berikut:
- Kompatibilitas dengan Android API 9 dan lebih tinggi
- Kemungkinan untuk terhubung melalui SSL
- Simpan koneksi untuk waktu yang lama tanpa harus memegang wakelock permanen
- Kompatibilitas dengan implementasi server nodejs websocket yang tersedia atau dengan socket.io
Adakah saran yang merupakan pustaka yang tepat untuk persyaratan ini?