मैं अपने एंड्रॉइड ऐप में एक सेवा जोड़ना चाहता हूं जो एक वेबस्केट कनेक्शन (संभवत: कई घंटे या यहां तक कि दिन) धारण करने वाली पृष्ठभूमि में चलता है और नियमित रूप से कुछ डेटा सर्वर पर भेजता है।
अब जावा के लिए WebSocket लाइब्रेरी का एक समूह प्रतीत होता है, और मुझे यकीन नहीं है कि मुझे कौन सा उपयोग करना चाहिए:
बहुतटेट / जावा-वेबस्केट गीथहब से वर्णन: एक नंगे वेबस्केट क्लाइंट और सर्वर कार्यान्वयन 100% जावा में लिखा गया है। http://java-websocket.org/ - यह एक "googling" android websocket के मेरे पहले परिणाम से जुड़ा हुआ है। हालाँकि, इसमें कुछ खुले मुद्दे हैं, खासकर SSL कनेक्शन के बारे में, और यह फिलहाल सक्रिय रूप से बनाए रखने के लिए नहीं लगता है।
kith / AndroidAsync GitHub से वर्णन: अतुल्यकालिक सॉकेट, http (क्लाइंट + सर्वर), वेबसोकेट, और एंड्रॉइड के लिए सॉकेट.आईओ लाइब्रेरी। Nio के आधार पर, धागे नहीं। - फिर से कई खुले मुद्दों, लेकिन लगता है सक्रियता बनाए रखा / पर काम किया।
वेबसाइट से प्रोजेक्ट टाइरस विवरण: जेएसआर 356: वेबसॉकेट के लिए जावा एपीआई - संदर्भ कार्यान्वयन - यह ओरेकल द्वारा बनाया गया है। यकीन नहीं होता कि यह एंड्रॉइड में काम करता है।
Jetty WebSocket Client API वेबसाइट से जानकारी: Jetty WebSocket क्लाइंट लाइब्रेरी को लिखने के लिए प्रदान करता है ताकि वे WebSocket क्लाइंट से बात कर सकें। - फिर से यकीन नहीं है कि यह एंड्रॉइड में काम करता है।
कोडबटलर / एंड्रॉइड-वेबसोकेट्स गीथहब से विवरण: नंगे न्यूनतम वेबसोकेट्स (hybi13 / RFC) एंड्रॉइड के लिए क्लाइंट - यह एक schwiz / android-websocket- उदाहरण में उपयोग किया जाता है, जो स्टैकऑवरफ्लो- प्रश्न के लिए स्वीकृत उत्तर है " कैसे करें एंड्रॉइड डिवाइस बिना वेक लॉक के इंटरनेट से टीसीपी कनेक्शन रखता है? ”।
GitHub से वायुमंडल / wasync विवरण: Node.js, Android और जावा के लिए फालबैक ट्रांसफ़र क्लाइंट लाइब्रेरी के साथ WebSockets http://async-io.org
GitHub से TakahikoKawasaki / nv-websocket- क्लाइंट का वर्णन: जावा में उच्च-गुणवत्ता वाला WebSocket क्लाइंट कार्यान्वयन।
gitHub से square / okhttp विवरण: Android और Java अनुप्रयोगों के लिए एक HTTP + SPDY क्लाइंट। http://square.github.io/okhttp/ -
इसमें एक वेबसोकेट मॉड्यूल है ।जैसा कि scorpiodawg द्वारा उल्लेख किया गया है , OkHttp ने 3.5 संस्करण के बाद से अंतर्निहित वेबस्कैट समर्थन किया है।GitHub से firebase / TubeSock का वर्णन: जावा में कार्यान्वित एक WebSocket क्लाइंट लाइब्रेरी
Autobahn | Android ( GitHub ) वेबसाइट से वर्णन: Autobahn | Android, ऑटोबान परियोजना द्वारा निर्मित जावा / एंड्रॉइड के लिए एक ओपन-सोर्स नेटवर्किंग लाइब्रेरी है, जो नेटिव मोबाइल वैबसाइट / WAMP बनाने के लिए WebSocket प्रोटोकॉल और वेब एप्लिकेशन मैसेजिंग प्रोटोकॉल (WAMP) को लागू करता है। ग्राहकों। - Cloudurfin ने बताया कि इसमें wss का कोई सपोर्ट नहीं है।
इसके अलावा, एंड्रॉइड के लिए एक देशी सॉकेट.आईओ क्लाइंट लाइब्रेरी है:
- nkzawa / socket.io-client.java GitHub से विवरण: जावा के लिए पूर्ण विशेषताओं वाले सॉकेट.आईओ क्लाइंट लाइब्रेरी, जो सॉकेट.आईओ v1.0 और बाद में संगत है।
एंड्रॉइड क्लाइंट का उपयोग करने के लिए एंड्रॉइड क्लाइंट मेरे लिए उपयोगी होगा, क्योंकि मैं वैसे भी वेब फ्रंट के लिए नोडज / सॉकेट.आईओ का उपयोग करने की योजना बना रहा हूं। लेकिन मूल ग्राहक काफी युवा है और कई खुले मुद्दे हैं। और इसके अलावा, यह मेरी समझ है कि एक एंड्रॉइड ऐप में सॉकेट.आईओ क्लाइंट लाइब्रेरी (सॉकेट.आईओ 1.0 सर्वर के साथ संगत होने के अलावा) का उपयोग करने का कोई लाभ नहीं है, क्योंकि क्लाइंट साइड में वेबस्केट समर्थन का आश्वासन दिया जा सकता है ।
मेरी आवश्यकताएं इस प्रकार हैं:
- एंड्रॉइड एपीआई 9 और उच्चतर के साथ संगतता
- SSL के माध्यम से जुड़ने की संभावना
- एक स्थायी वैकलॉक को पकड़े बिना लंबे समय तक संबंध बनाए रखें
- उपलब्ध नोडजेस वेबसोकेट सर्वर कार्यान्वयन के साथ या सॉकेट.आईओ के साथ संगतता
कोई सुझाव जो इन आवश्यकताओं के लिए सही पुस्तकालय है?