2013-10-31 6 views
6

मेरा विचार आईओएस और एंड्रॉइड के लिए एक साधारण चैट एप्लिकेशन बनाना है। किसी भी मामले में, मेरा प्रश्न सर्वर-साइड से संबंधित है। चैट एप्लिकेशन करने का सबसे अच्छा विकल्प, जो मैंने पढ़ा है, वह सॉकेट बनाना है। डेटाबेस का जिक्र करते हुए, मेरा इरादा MySQL का उपयोग करना है, जो संभावनाओं में से किसी एक को चुनने के लिए ध्यान में रखना महत्वपूर्ण हो सकता है।सॉकेट.आईओ बनाम ट्विस्ट

मेरा प्रश्न स्केलेबिलिटी, गति और सुरक्षा के मामले में है, जो सबसे अच्छा विकल्प है: Twisted का उपयोग करके पाइथन के साथ सॉकेट बनाना या Socket.IO का उपयोग करके नोडजेएस के साथ?

मुझे लगता है कि एक कुशल सॉकेट बनाने के लिए अन्य संभावनाएं हो सकती हैं, लेकिन अब तक मैं इन दोनों पर विचार कर रहा हूं। अगर आप मुझे कुछ सलाह दे सकते हैं तो मैं वास्तव में इसकी सराहना करता हूं।

+2

कई अच्छे प्रश्न विशेषज्ञ अनुभव के आधार पर कुछ हद तक राय उत्पन्न करते हैं, लेकिन इस प्रश्न का उत्तर लगभग तथ्यों, संदर्भों या विशिष्ट विशेषज्ञता के बजाय विचारों पर आधारित होगा। "प्रारूप" विकल्प इस प्रारूप में उत्तर देने के लिए बहुत से पैरामीटर पर निर्भर करेगा। – Lix

+0

लेकिन, उदाहरण के लिए, गति के मामले में, निश्चित रूप से एक उद्देश्य उत्तर है। किसी भी मामले में, इन पुस्तकालयों के साथ काम करने वाले लोगों की राय सुनने में बुरा नहीं हो सकता है। –

+0

यह खराब होगा क्योंकि विचारों पर आधारित उत्तरों को स्टैक ओवरफ़्लो पर उपयोगी नहीं माना जाता है। – Lix

उत्तर

9

ट्विस्ट और सॉकेट.ओओ की तुलना सेब को एक ट्रक ले जाने वाले सेब की तुलना कर रहा है। ट्विस्टेड एक लाइब्रेरी है जो पाइथन को ईवेंट उन्मुख प्रोग्रामिंग कार्यक्षमता प्रदान करती है। जावास्क्रिप्ट में जो केवल जावास्क्रिप्ट ही है (चाहे वह node.js या वेब ब्राउज़र या यहां तक ​​कि गैंडो हो)।

पाइथन पर सॉकेट.ओ के साथ node.js पर सॉकेट.ओ की तुलना करने के लिए एक और अधिक उपयुक्त तुलना है। जबकि वहाँ नोड पर एक socket.io सर्वर से एक मुख्य कार्यान्वयन है वहाँ अजगर के लिए कई हैं:

(से लिया socket.io विकी: https://github.com/learnboost/socket.io/wiki)

यदि आप चाहें तो ट्विस्ट का उपयोग करके आप पाइथन में अपना सॉकेट.ओओ भी कार्यान्वित कर सकते हैं। Socket.io प्रोटोकॉल यहां दस्तावेज किया गया है: https://github.com/LearnBoost/socket.io-spec। लेकिन यह socket.io के उद्देश्य को हरा देगा - यह वास्तविक समय वेब संचार के निम्न स्तर के विवरण को दूर करता है और आपको अपने व्यावसायिक तर्क लिखने पर ध्यान केंद्रित करने की अनुमति देता है। ।

ग्राहक के पक्ष आप ब्राउज़र के लिए एक ही socket.io स्क्रिप्ट कि आप किस भाषा में सर्वर लिखने के लिए तय की परवाह किए बिना तैनात हैं, उस पर

के साथ संबंध है जो भाषा को चुनने के लिए: अंगूठे का मेरा नियम है उस भाषा का चयन करें जिसके साथ आप सबसे अधिक आरामदायक हैं। आपके पास अपने व्यावसायिक तर्क को डीबग करने में पर्याप्त समस्याएं हैं। एक अपरिचित भाषा का उपयोग करके इसे जटिल मत करो।

दोनों भाषाएं कड़ी मेहनत कर रही हैं (हाँ, यहां तक ​​कि node.js जो आश्चर्यजनक है कि यह कितना युवा है)। उदाहरण के लिए पाइथन ड्रॉपबॉक्स के रूप में ऐसी उच्च यातायात सेवाओं पर उत्पादन में उपयोग किया जाता है। नोड वर्तमान में लिंक्डइन मोबाइल के रूप में ऐसी उच्च यातायात सेवाओं पर उपयोग में है।

+0

धन्यवाद @ एसलेबेटमैन! आपके उत्तर ने मुझे कई चीजें साफ़ कर दी हैं। –