2013-10-02 10 views
16

मेरे ज्ञान में, एंड्रॉइड डिवाइस से डेटा भेजने के लिए जीसीएम के उपयोग पर भरोसा करते हुए अधिकांश एंड्रॉइड ट्यूटोरियल और उदाहरण; और डिवाइस से सर्वर पर डेटा भेजने के लिए पोस्ट/प्राप्त विधियों के साथ php स्क्रिप्ट का उपयोग करें।एंड्रॉइड में जीसीएम बनाम सॉकेट

मेरा एक मित्र (जिस व्यक्ति को एंड्रॉइड प्रोग्रामिंग का कोई ज्ञान नहीं है) ने मुझसे पूछा, हम जावा में सॉकेट क्लास का उपयोग क्यों नहीं कर सकते? पारंपरिक जावा प्रोग्रामिंग में, आप जीसीएम (एकल सर्वर एकाधिक क्लाइंट्स) जैसी कार्यक्षमता प्राप्त करने के लिए सॉकेट (आईपी एड्रेस + पोर्ट नंबर) का उपयोग करते हैं - उचित तकनीकों का उपयोग करके आप सुनिश्चित कर सकते हैं कि संदेश खो नहीं गए हैं, बस जीसीएम की तरह)।

क्या यह पारंपरिक सॉकेट दृष्टिकोण एंड्रॉइड में भी लागू किया जा सकता है? यदि हां, तो जीसीएम और सॉकेट के पेशेवर और विपक्ष क्या हैं? सॉकेट का उपयोग किस स्थितियों में उपयुक्त होगा? व्हाट्सएप और अन्य ऐप्स, मेरे ज्ञान के लिए, जीसीएम का उपयोग करें। क्या ऐसे ऐप्स हैं जो सॉकेट का उपयोग करते हैं?

पीएस: मैं सिर्फ एक सीएस छात्र हूं; क्षमा करें अगर मुझे मेरी अवधारणाएं कहीं गलत हैं

उत्तर

21

जीसीएम सॉकेट का भी उपयोग करता है। हालांकि, वे सिस्टम द्वारा प्रबंधित होते हैं और इस तरह एक नियमित ऐप नहीं कर सकते हैं। आम तौर पर, किसी भी प्रकार की 'पुश' अधिसूचनाओं के लिए, सिस्टम को लंबे समय तक रहने वाली सॉकेट की आवश्यकता होती है, और 'सॉफ़्टवेयर' उस सॉकेट पर कुछ डेटा प्राप्त होता है। यह हमेशा एक कनेक्टेड मशीन, जैसे कि डेस्कटॉप या सर्वर पर लागू करना बहुत मुश्किल नहीं है, लेकिन मोबाइल पर अतिरिक्त चुनौतियां हैं। उदाहरण के लिए, स्विचिंग नेटवर्क्स (3 जी < -> वाईफाई), रेंज से बाहर निकलने, डिवाइस को हर समय जागने के बिना कनेक्शन बनाए रखना (और प्रक्रिया में बैटरी को मारना)। तो हाँ, आप सेवा, सॉकेट और अपने सर्वर का उपयोग कर कुछ ऐसा ही कार्यान्वित कर सकते हैं, लेकिन यह मोबाइल पर छोटा नहीं है।

ओपन-सोर्स कार्यान्वयन के लिए http://mqtt.org/ देखें।

+0

धन्यवाद :) तो मूल रूप से यह संभव है; लेकिन वास्तविक दिनों में किसी भी हार्ड कोड की पूरी वेबसाइटों की तरह ही, आप हमेशा सॉकेट के बजाय जीसीएम का उपयोग करेंगे। व्हाट्सएप, जीमेल, फेसबुक इत्यादि सभी जीसीएम का सही इस्तेमाल करते हैं? – MMss

+0

यदि आप Google सेवाओं पर निर्भर नहीं हैं या Google खाते के बिना किसी डिवाइस पर चल रहे हैं, तो आपको इसे स्वयं लागू करना होगा। जीमेल जीसीएम का उपयोग करता है, अन्य लोगों के बारे में नहीं जानता। –

+0

ठीक है .. बहुत बहुत धन्यवाद :) – MMss

संबंधित मुद्दे