Xmpp बनाम Websocket [बंद]


88

मैं एक ऐसी वेबसाइट विकसित करने वाला हूं, जिसके पास वास्तविक समय चैट है। मुझे पता है कि इसे xmpp या websocket प्रोटोकॉल का उपयोग करके लागू किया जा सकता है। मुझे यह भी पता है कि xmpp प्रोटोकॉल को 1999 में विकसित किया गया है, और मुझे लगता है कि इसे आजकल परिपक्व होना चाहिए। दूसरी तरफ, वेबसोकेट प्रोटोकॉल 2011 में विकसित किया गया है।

  1. यदि वास्तविक समय की बातचीत को संभालने में xmpp अच्छा था, तो वेबसोकेट की क्या आवश्यकता थी?
  2. 2 प्रोटोकॉल के बीच प्रमुख अंतर क्या हैं?
  3. और मुझे उनमें से एक को कब चुनना चाहिए?

1
मैं हाल ही में एक ही मुद्दे पर ठोकर खाई थी, मेरा जवाब था कि मैं जा रहा हूँ WebSockets के लिए। नोड.जेएस एक बहुत लोकप्रिय भाषा बन रही है, और अधिकारों से यह होना चाहिए। XMPP ठीक है - हालांकि मेरी राय में आप इस पुरानी तकनीक के लिए जाने का फैसला करके खुद को आगे बढ़ा रहे हैं। हालांकि नोड एक मुश्किल जानवर है और आपको इसे अलग तरीके से देखना होगा कि आप जावास्क्रिप्ट कैसे करेंगे। यदि आप पर्याप्त धैर्य रखते हैं, तो मैं सुझाव दूंगा कि नोड - केवल इसके लिए नहीं, बल्कि यह आपको अधिक आसानी से अन्य क्षेत्रों में विस्तार करने की अनुमति देगा।
JustSteveKing

7
एक्सएमपीपी एक एक्सटेंसिबल मैसेजिंग और प्रेजेंस प्रोटोकॉल है, वेबसोकेट एक ऐसा प्रोटोकॉल है जो पोर्ट 80 पर पूर्ण द्वैध संचार प्रदान करता है। आप सेब की तुलना संतरे से करते हैं।
प्रवाह करें

17
@ फ़्लो: मैं आपकी राय में संतरे की तुलना सेब से कर सकता हूँ। लेकिन मैं जो पूछ रहा हूं वह वह है जो मुझे एक वेबसाइट विकसित करते समय चुनना चाहिए जो वास्तविक समय चैट क्षमता प्रदान करता है।
ख्फ्गा

1
@JustSteveKing ज्यादातर चीजें पहले से ही एक्सएमपीपी में होती हैं लेकिन आपको उन चीजों को मैनेज करना होगा। यह पहिया को फिर से मजबूत करने के बराबर है।
शाहिद करीमी

जवाबों:


133

संक्षिप्त उत्तर 'दोनों' है।

एक्सएमपीपी वास्तविक समय चैट (और उस मामले के लिए कई अन्य चीजें) करने के लिए एप्लिकेशन प्रोटोकॉल का एक सेट है - यह तब किसी भी तरह से पूरे नेटवर्क में ले जाया जाना है, इसलिए आपको परिवहन बंधन की आवश्यकता है। XMPP के लिए तीन मुख्य परिवहन बाइंडिंग हैं -

  1. टीसीपी / आईपी, जो कि आमतौर पर उपकरणों पर देशी ग्राहकों के साथ इंटरनेट पर उपयोग होता है
  2. HTTP (BOSH कहा जाता है), जो कि किसी ने पारंपरिक रूप से ब्राउज़र में XMPP का उपयोग करते समय उपयोग किया है (जैसा कि TCP-IP ब्राउज़र में जावास्क्रिप्ट ऐप्स के लिए उपलब्ध नहीं है)
  3. वेबस्कैट, जो एक आधुनिक ब्राउज़र में XMPP करते समय एक का उपयोग करता है।

इसलिए यदि आप किसी ब्राउज़र में चैट एप्लिकेशन विकसित कर रहे हैं, तो आप XMPP को एप्लिकेशन प्रोटोकॉल के रूप में चुनेंगे और आप नेटवर्क ट्रांसपोर्ट के रूप में वेबस्केट (आधुनिक ब्राउज़र में) या BOSH (पुराने ब्राउज़र में) का उपयोग करेंगे। यदि आप Stanza.io ( https://github.com/otalk/stanza.io ) की तरह जावास्क्रिप्ट के लिए एक XMPP लाइब्रेरी का उपयोग करते हैं , तो यह दोनों को सपोर्ट करेगा और आप ट्रांसपोर्ट लेयर के बजाय सिर्फ 'XMPP' के बारे में सोचेंगे , सेटअप के अलावा जब आपको यह बताना होगा कि किस से कनेक्ट करना है।

(आप चैट के लिए 'सिर्फ वेबसोकेट्स' का उपयोग नहीं कर सकते हैं - आप एक्सएमपीपी के बिना वेबसोकेट्स का उपयोग कर सकते हैं, लेकिन इसका वास्तव में मतलब यह है कि आप चैट के लिए अपने स्वयं के एप्लिकेशन-लेयर प्रोटोकॉल का आविष्कार कर रहे हैं, और आप जो बचत करने जा रहे हैं। उस कार्य का लाभ उठाकर बहुत समय और सिरदर्द जो पहले से ही उपयोगी गुणों (सुरक्षा, पहचान, विस्तार आदि) के साथ एक में लिख गया है और जिसके लिए XMPP के बजाय मौजूदा लाइब्रेरी और सर्वर मौजूद हैं।)


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

1
नहीं, आप जो नामकरण कर रहे हैं, वह लाइब्रेरियों बनाम सर्वर हैं।
केव

यहां परतों के बारे में अधिक जानकारी (incl। Transport, एप्लिकेशन लेयर्स): en.wikipedia.org/wiki/OSI_model
Karina Klinkevičiūtė

2
केव से अच्छा जवाब है, लेकिन यह इंगित करने के लायक हो सकता है 1> टीसीपी परत 4 से है - ट्रांसपोर्ट लेयर जबकि HTTP और वेबसोकेट दोनों 7 - एप्लिकेशन लेयर से संबंधित हैं।
Gob00st

वास्तव में @ Gob00st - मैं यहाँ भी भ्रमित हूँ। केव का यह उत्तर "दोनों" कहता है, क्योंकि "आप वेबस्कॉक (एक आधुनिक ब्राउज़र में) ... नेटवर्क परिवहन के रूप में " का उपयोग करेंगे । लेकिन हम इस तथ्य के साथ कैसे सामंजस्य स्थापित करते हैं कि WebSocket (XMPP और HTTP के रूप में) वास्तव में OSI लेयर 7 में एप्लिकेशन ( ट्रांसपोर्ट नहीं ) प्रोटोकॉल हैं? एक आधुनिक ब्राउज़र में "WebSockets के शीर्ष पर XMPP" क्यों जाएगा?
अमिलियो वाज़केज़-रीना
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.