WebSocket और STOMP प्रोटोकॉल में क्या अंतर है?


103

WebSocket और STOMP प्रोटोकॉल के बीच प्रमुख अंतर क्या हैं?

जवाबों:


95

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

संक्षिप्त जवाब

STOMP वेबसॉकेट के शीर्ष पर बना है। STOMP में केवल कुछ विशिष्ट तरीकों का उल्लेख किया गया है कि क्लाइंट और सर्वर के बीच मेसेज फ्रेम का आदान-प्रदान कैसे किया जाता है।


लंबा जवाब

WebSockets

यह एक क्लाइंट और सर्वर के बीच सिंक्रोनस बिडायरेक्शनल कम्युनिकेशन को अनुमति देने के लिए एक विनिर्देश है। जबकि टीसीपी सॉकेट्स के समान, यह एक प्रोटोकॉल है जो एक उन्नत HTTP कनेक्शन के रूप में काम करता है, एक धारा के बजाय दोनों पक्षों के बीच चर-लंबाई फ्रेम का आदान-प्रदान करता है।

STOMP

यह मैसेजिंग शब्दार्थ के साथ संवाद करने के लिए क्लाइंट और सर्वर के लिए एक प्रोटोकॉल को परिभाषित करता है। यह किसी भी कार्यान्वयन विवरण को परिभाषित नहीं करता है, बल्कि मैसेजिंग इंटीग्रेशन के लिए एक आसान-से-लागू वायर प्रोटोकॉल को संबोधित करता है। यह वेब सॉकेट्स प्रोटोकॉल के शीर्ष पर उच्च शब्दार्थ प्रदान करता है और मुट्ठी भर फ्रेम प्रकारों को परिभाषित करता है जो वेबसॉकेट्स फ़्रेम पर मैप किए जाते हैं। इनमें से कुछ प्रकार हैं ...

  • जुडिये
  • सदस्यता लेने के
  • सदस्यता समाप्त
  • भेजें (सर्वर को भेजे गए संदेश)
  • संदेश (संदेश सर्वर से भेजने के लिए) BEGIN, COMMIT, रोलबैक (लेनदेन प्रबंधन)

क्या आपका मतलब है अतुल्यकालिक?
अनातोली स्टेपानुक

27

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

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

इस कारण से WebSocket RFC उप-प्रोटोकॉल के उपयोग को परिभाषित करता है। हैंडशेक के दौरान, क्लाइंट और सर्वर हेडर सेक-वेब-सॉकेट-प्रोटोकॉल का उपयोग करने के लिए उप-प्रोटोकॉल पर सहमत हो सकते हैं, जिसका उपयोग करने के लिए एक उच्च, एप्लिकेशन-स्तर प्रोटोकॉल है। एक उप-प्रोटोकॉल के उपयोग की आवश्यकता नहीं है, लेकिन अगर उपयोग नहीं किया जाता है, तब भी अनुप्रयोगों को एक संदेश प्रारूप चुनना होगा जो क्लाइंट और सर्वर दोनों समझ सकते हैं। वह प्रारूप कस्टम, फ्रेमवर्क-विशिष्ट, या मानक मैसेजिंग प्रोटोकॉल हो सकता है।

STOMP  - एक सरल, मैसेजिंग प्रोटोकॉल जो मूल रूप से HTTP से प्रेरित फ्रेम के साथ स्क्रिप्टिंग भाषाओं में उपयोग के लिए बनाया गया है। STOMP व्यापक रूप से समर्थित है और WebSocket और वेब पर उपयोग के लिए अच्छी तरह से अनुकूल है।


14

WebSocket API वेब एप्लिकेशन को द्विदिश संचार को संभालने में सक्षम बनाता है जबकि STOMP एक सरल टेक्स्ट-ओरिएंटेड मैसेजिंग प्रोटोकॉल है।

STOMP प्रोटोकॉल आमतौर पर एक वेब सॉकेट के अंदर उपयोग किया जाता है जब एक वेब ऐप को वेब सर्वर के साथ द्विदिश संचार का समर्थन करने की आवश्यकता होती है।

एक अच्छा ट्यूटोरियल जेफ मेसनील (2012) द्वारा वेबस्मार्ट पर STOMP है

STOMP का उपयोग बिना वेबसैट के भी किया जा सकता है, जैसे टेलनेट कनेक्शन या मैसेज ब्रोकिंग सेवा।

और रॉ वेबसॉकेट का उपयोग STOMP - जैसे बिना किया जा सकता है। स्प्रिंग बूट + STOMP और SockJs के बिना WebSocket उदाहरण

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.