webhook और websocket के बीच अंतर


85

मैं हमेशा एक वास्तविक समय चैट करना चाहता था।

मैंने उस साल पहले PHP + Ajax + Mysql में किया है और मेरे सर्वर को तोड़ दिया है। फिर मैंने फ्लैश + एक टेक्स्ट फाइल के साथ कोशिश की। मैंने हार मान ली और 10 साल में कोशिश नहीं की। लेकिन हाल ही में मैंने webhooks और websockets के बारे में सुना। और वे दोनों ऐसा करने के लिए एक तरीका है, लेकिन मैं वास्तव में अंतर समझ नहीं है। कोई समझा सकता है?

जवाबों:


226

Webhooks

Webhooks सर्वर से सर्वर संचार के लिए हैं। वे एक सर्वर द्वारा दूसरे सर्वर को यह बताते हुए काम करते हैं कि यह कुछ होने पर डेटा को एक निश्चित यूआरएल में भेजना चाहता है।

यह लेख लोकप्रिय सेवाओं में webhooks के कुछ उपयोगों के बारे में बात करता है। यह संगठन RESTful API के संदर्भ में इनके उपयोग के बारे में बहुत सारी बातें करता है।

WebSockets

Websockets सर्वर (आमतौर पर) ब्राउज़र संचार के लिए हैं। सर्वर वेबस्केट सर्वर को होस्ट करता है, और क्लाइंट उस सर्वर से कनेक्शन खोल सकते हैं। यह अब ज्यादातर लोकप्रिय है क्योंकि यह समस्या को हल करने के पुराने तरीकों की तुलना में तेजी से और कम संसाधन-हॉगिंग है, जैसे कि लंबे समय से मतदान / COMET

यह है WebSockets का उपयोग कर 2 सर्वर से कनेक्ट करने के लिए संभव है, लेकिन है कि आमतौर पर है कि वे क्या के लिए किया जाता नहीं है।

दुविधा

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

एक स्थिति जहां एक सीधी तुलना हो सकती है यदि आप एक एपीआई का निर्माण कर रहे हैं जो तीसरे पक्ष के सर्वर द्वारा खपत किया जाएगा। उस स्थिति में, आप एक webhook API या एक websocket API प्रदान कर सकते हैं । दोनों तृतीय पक्ष को शीघ्रता से अपडेट प्राप्त करने की अनुमति देते हैं:

  • यदि आप webhooks चुनते हैं, तो उस तीसरे पक्ष को अभी भी अपने ग्राहक के ब्राउज़रों के बारे में आपको बताए गए परिवर्तनों को धकेलने का एक तरीका निकालना होगा।
  • यदि आप एक वेबसोकेट एपीआई प्रदान करते हैं, तो तीसरी पार्टी बस अपनी साइट को सेट कर सकती है, इसलिए उनके प्रत्येक उपयोगकर्ता आपके वेबसोकेट एपीआई से सीधे जुड़ते हैं, और उनके सर्वर को कम काम करना पड़ता है।

1
यह एक बढ़िया जवाब है! आपका बहुत बहुत धन्यवाद!
डेविड David वोंग

4
Websockets का उपयोग आमतौर पर क्लाइंट-सर्वर संचार के लिए किया जाता है, लेकिन यह सीमित नहीं है। उनका उपयोग सर्वर-सर्वर संचार के लिए भी किया जा सकता है।
पिथिकोस

दोनों websocket और webhook में सॉकेट लगातार खुला रहता है? क्या 10000 के सर्वर को हग करने से बचाया जाता है?
आइलिमिस्ट

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

16

यहाँ webhooks और websockets के बीच चयन के लिए कुछ अतिरिक्त जानकारी दी गई है।

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

WebSockets

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

Webhooks

  • यदि आपके सर्वर ऐप ऐप को कई सदस्यताएँ बनाने की आवश्यकता है, तो अपने वेब पर खुले वेबसोकेट कनेक्शन की मात्रा को संभालने के लिए तैयार रहें ( 1M वेबसोकेट कनेक्शन के लिए यह लेख देखें ), या वेबहूक पर स्विच करें। कुछ लोकप्रिय चैटबॉट स्केलेबिलिटी में सुधार करने के लिए वेबस्कॉक से वेबहुक तक चले गए हैं।
  • यदि आपका सर्वर ऐप क्लाउड फ़ंक्शन (AWS लैम्ब्डा, Google क्लाउड फ़ंक्शंस, आदि) पर चलता है, तो webhooks का उपयोग करें क्योंकि आपका ऐप वेबसैट कनेक्शन को खुला नहीं रखेगा।
  • यदि आपका सर्वर ऐप हेरोकू फ्री टियर पर चल रहा है, तो webhooks का उपयोग करें क्योंकि आपका डायनो सो जाएगा और प्रति दिन 6 घंटे सोना होगा, जब तक कि आप मैन्युअल रूप से अपने सर्वर को सोने का निर्देश न दें।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.