वेब सॉकेट, वेब वर्कर्स और सर्विस वर्कर्स प्लेटोब्लॉकचेन डेटा इंटेलिजेंस के बीच अंतर। लंबवत खोज. ऐ.

वेब सॉकेट, वेब वर्कर्स और सर्विस वर्कर्स के बीच अंतर

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

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

त्वरित संदर्भ

हम एक त्वरित तुलना और कंट्रास्ट के लिए एक उच्च-स्तरीय अवलोकन के साथ शुरुआत करेंगे।

Feature क्या यह है
वेब सॉकेट घटनाओं द्वारा ट्रिगर किए गए एकल कनेक्शन पर संदेश भेजने और प्राप्त करने के लिए ब्राउज़र और सर्वर के बीच एक खुला और लगातार दो-तरफ़ा कनेक्शन स्थापित करता है।
वेब कार्यकर्ता स्क्रिप्ट को मुख्य थ्रेड पर एक दूसरे को ब्लॉक करने से रोकने के लिए स्क्रिप्ट को अलग-अलग थ्रेड में पृष्ठभूमि में चलने देता है।
सेवा कार्यकर्ता एक प्रकार का वेब वर्कर जो एक पृष्ठभूमि सेवा बनाता है जो ऑफ़लाइन स्थितियों में भी ब्राउज़र और सर्वर के बीच नेटवर्क अनुरोधों को संभालने के लिए मिडलवेयर का कार्य करता है।

वेब सॉकेट्स

एक वेब सॉकेट एक दो-तरफा संचार प्रोटोकॉल है। इसे आपके और आपके मित्र के बीच चल रही कॉल की तरह समझें जो तब तक समाप्त नहीं होगी जब तक कि आप में से कोई एक हैंग करने का निर्णय नहीं लेता। फर्क सिर्फ इतना है कि आप ब्राउज़र हैं और आपका दोस्त सर्वर है। क्लाइंट सर्वर को एक अनुरोध भेजता है और सर्वर क्लाइंट के अनुरोध को संसाधित करके और इसके विपरीत प्रतिक्रिया करता है।

वेब सॉकेट, वेब वर्कर्स और सर्विस वर्कर्स के बीच अंतर

संचार घटनाओं पर आधारित है। ए WebSocket ऑब्जेक्ट स्थापित है और एक सर्वर से जुड़ता है, और सर्वर के बीच संदेश उन घटनाओं को ट्रिगर करता है जो उन्हें भेजते और प्राप्त करते हैं।

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

इस परिदृश्य पर विचार करें: आप बाहर जा रहे हैं और आप Google मानचित्र पर स्विच करने का निर्णय लेते हैं। आप शायद पहले से ही जानते हैं कि Google मानचित्र कैसे काम करता है, लेकिन यदि आप नहीं करते हैं, तो यह आपके द्वारा ऐप से कनेक्ट होने के बाद स्वचालित रूप से आपका स्थान ढूंढ लेता है और आप जहां भी जाते हैं इसका ट्रैक रखता है। जब तक यह कनेक्शन जीवित है, तब तक यह आपके स्थान का ट्रैक रखने के लिए रीयल-टाइम डेटा ट्रांसमिशन का उपयोग करता है। यह एक वेब सॉकेट है जो उस डेटा को अद्यतित रखने के लिए ब्राउज़र और सर्वर के बीच लगातार दो-तरफा बातचीत स्थापित करता है। रीयल-टाइम स्कोर वाला एक स्पोर्ट्स ऐप भी इस तरह वेब सॉकेट का उपयोग कर सकता है।

वेब सॉकेट्स और वेब वर्कर्स (और, जैसा कि हम देखेंगे, सर्विस वर्कर्स) के बीच बड़ा अंतर यह है कि उनकी DOM तक सीधी पहुंच है। जबकि वेब वर्कर्स (और सर्विस वर्कर) अलग-अलग थ्रेड्स पर चलते हैं, वेब सॉकेट्स मुख्य थ्रेड का हिस्सा होते हैं जो उन्हें DOM में हेरफेर करने की क्षमता देता है।

वेब सॉकेट कनेक्शन स्थापित करने और बनाए रखने में मदद करने के लिए उपकरण और सेवाएं हैं, जिनमें शामिल हैं: सॉकेट क्लस्टर, एसिंकएपीआई, चरवाहे, वेबसॉकेट किंग, चैनल, तथा गोरिल्ला वेबसाकेट. एमडीएन में एक है चल रही सूची जिसमें अन्य सेवाएं शामिल हैं.

अधिक वेब सॉकेट जानकारी

वेब वर्कर्स

एक ऐसे परिदृश्य पर विचार करें जहां आपको एक ही समय में DOM में परिवर्तन करते हुए जटिल गणनाओं का एक गुच्छा करने की आवश्यकता हो। जावास्क्रिप्ट एक सिंगल-थ्रेडेड एप्लिकेशन है और एक से अधिक स्क्रिप्ट चलाने से उस यूजर इंटरफेस को बाधित किया जा सकता है जिसमें आप बदलाव करने की कोशिश कर रहे हैं और साथ ही जटिल गणना भी की जा रही है।

यहीं पर वेब वर्कर्स काम में आते हैं।

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

एक वेब वर्कर एक ऑब्जेक्ट है जो एक स्क्रिप्ट फ़ाइल का उपयोग करके निष्पादित करता है a Worker कार्यों को पूरा करने का विरोध। और जब हम श्रमिकों के बारे में बात करते हैं, तो वे तीन प्रकारों में से एक में आते हैं:

  • समर्पित कार्यकर्ता: एक समर्पित कार्यकर्ता केवल उस स्क्रिप्ट की पहुंच के भीतर होता है जो उसे बुलाती है। यह अभी भी एक विशिष्ट वेब वर्कर के कार्यों को निष्पादित करता है, जैसे कि इसकी मल्टी-थ्रेडिंग स्क्रिप्ट।
  • साझा कार्यकर्ता: एक साझा कार्यकर्ता एक समर्पित कार्यकर्ता के विपरीत है। इसे कई लिपियों द्वारा एक्सेस किया जा सकता है और व्यावहारिक रूप से किसी भी कार्य को निष्पादित कर सकता है जिसे एक वेब कार्यकर्ता तब तक निष्पादित करता है जब तक वे कार्यकर्ता के समान डोमेन में मौजूद होते हैं।
  • सेवा कार्यकर्ता: एक सेवा कार्यकर्ता एक ऐप, ब्राउज़र और सर्वर के बीच नेटवर्क प्रॉक्सी के रूप में कार्य करता है, जिससे नेटवर्क के ऑफ़लाइन होने की स्थिति में भी स्क्रिप्ट को चलने की अनुमति मिलती है। हम इसे अगले भाग में प्राप्त करने जा रहे हैं।

अधिक वेब वर्कर्स की जानकारी

सेवा श्रमिक

कुछ चीजें हैं जिन पर डेवलपर्स के रूप में हमारा कोई नियंत्रण नहीं है, और उन चीजों में से एक उपयोगकर्ता का नेटवर्क कनेक्शन है। उपयोगकर्ता जिस भी नेटवर्क से जुड़ता है वह वही है। हम केवल अपने ऐप्स को ऑप्टिमाइज़ करने के लिए अपना सर्वश्रेष्ठ प्रयास कर सकते हैं ताकि वे उपयोग किए जाने वाले किसी भी कनेक्शन पर सर्वश्रेष्ठ प्रदर्शन कर सकें।

सर्विस वर्कर उन चीजों में से एक है जो हम ऐप के प्रदर्शन को उत्तरोत्तर बढ़ाने के लिए कर सकते हैं। एक सेवा कार्यकर्ता ऐप, ब्राउज़र और सर्वर के बीच बैठता है, एक सुरक्षित कनेक्शन प्रदान करता है जो एक अलग थ्रेड पर पृष्ठभूमि में चलता है, धन्यवाद - आपने अनुमान लगाया - वेब वर्कर्स। जैसा कि हमने पिछले खंड में सीखा, सर्विस वर्कर तीन प्रकार के वेब वर्कर्स में से एक है।

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

क्लाइंट लेबल वाले ब्राउज़र आइकन और क्लाउड आइकन लेबल वाले सर्वर के बीच सर्विस वर्कर लेबल वाला गियर कॉग आइकन।
वेब सॉकेट, वेब वर्कर्स और सर्विस वर्कर्स के बीच अंतर

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

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

अधिक सेवा कर्मियों की जानकारी

ऊपर लपेटकर

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

हमने एक त्वरित संदर्भ तालिका के साथ चीजों को बंद कर दिया। यहाँ वही बात है, लेकिन मोटी तुलनाओं को आकर्षित करने के लिए थोड़ा विस्तारित किया गया है।

Feature क्या यह है मल्टीथ्रेडेड? एचटीटीपीएस? डोम पहुंच?
वेब सॉकेट घटनाओं द्वारा ट्रिगर किए गए एकल कनेक्शन पर संदेश भेजने और प्राप्त करने के लिए ब्राउज़र और सर्वर के बीच एक खुला और लगातार दो-तरफ़ा कनेक्शन स्थापित करता है। मुख्य धागे पर चलता है आवश्यक नहीं हाँ
वेब कार्यकर्ता स्क्रिप्ट को मुख्य थ्रेड पर एक दूसरे को ब्लॉक करने से रोकने के लिए स्क्रिप्ट को अलग-अलग थ्रेड में पृष्ठभूमि में चलने देता है। एक अलग धागे पर चलता है अपेक्षित नहीं
सेवा कार्यकर्ता एक प्रकार का वेब वर्कर जो एक पृष्ठभूमि सेवा बनाता है जो ऑफ़लाइन स्थितियों में भी ब्राउज़र और सर्वर के बीच नेटवर्क अनुरोधों को संभालने के लिए मिडलवेयर का कार्य करता है। एक अलग धागे पर चलता है अपेक्षित नहीं

समय टिकट:

से अधिक सीएसएस ट्रिक्स