2011-06-23 9 views
6

मैंने अभी HTML5 WebSockets पर शोध करना शुरू कर दिया है। मैं सोच रहा था कि क्या मैं एएसपी.NET अपडेटपैनल्स का उपयोग करने के बजाय वेबसाईट के साथ सभी वेब पेज की सामग्री को अपडेट कर सकता हूं, या यह अधिक हो जाएगा?क्या मैं आमतौर पर AJAX के साथ किए गए कार्यों के लिए HTML5 वेबसाकेट का उपयोग कर सकता हूं?

क्या वेबसाकेट्स को AJAX के प्रतिस्थापन के रूप में उपयोग किया जा सकता है? और क्या यह वेबसाकेट का उपयोग किया जाना चाहिए?

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

उत्तर

0

यदि आप किसी ऐसे पृष्ठ में वेबस्केट्स का उपयोग करना चाहते हैं जो IE8 को देखने में सक्षम होना चाहिए, तो इसके बजाय अजाक्स का उपयोग करें।

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

अभी, वेबसाकेट केवल खिलौनों के कार्यान्वयन के लिए उपयोग किया जाता है। वे ग्राहक तैयार नहीं हैं। साथ ही, वे वास्तव में केवल तभी आवश्यक होते हैं जब अजाक्स और कॉल करता है, आपकी आवश्यकताओं के लिए धूमकेतु कॉल बहुत धीमी होती है।

+0

अपने आवेदन में [वेब-सॉकेट-जेएस] (https://github.com/gimite/web-socket-js) (फ़्लैश आधारित पॉलीफिल/फ़ॉलबैक) जोड़कर आप फ़्लैश के साथ किसी भी ब्राउज़र का समर्थन कर सकते हैं। इस तथ्य के साथ संयोजन करें कि आईओएस वेबसाकेट्स को मूल रूप से समर्थन देता है और यह वेबसाकेट को जंगली में सभी प्रमुख ब्राउज़रों पर उपलब्ध कराता है। कई वेबसाकेट सर्वर हैं और ब्राउज़र में मौजूद सभी प्रोटोकॉल संस्करणों का सबसे अधिक समर्थन करते हैं। इसके अलावा, "खिलौना" भ्रामक है। हालांकि यह सच है कि अधिकांश वेबसाकेट्स अपेक्षाकृत नए हैं और विकास में, निश्चित रूप से उत्पादन के गुणवत्ता वाले अनुप्रयोग हैं। – kanaka

0

तकनीकी रूप से, हाँ। व्यावहारिक रूप से, मैं शायद इंतजार करूँगा।

वेबसाइकिल निश्चित रूप से एचटीएमएल 5 जिस तरह से संचार का उपयोग करता है उसका तरीका है। तकनीकी रूप से, हाँ आप कर सकते हैं, लेकिन आप जिस साइट के निर्माण कर रहे हैं उसके आधार पर, आप इसे रोकना चाहेंगे। Websockets एचटीएमएल 5 spec के नए टुकड़ों में से एक है और अभी भी अंतिम रूप दिया जा रहा है। यह क्रोम और फ़ायरफ़ॉक्स 4 के नवीनतम संस्करणों में काम करता है, लेकिन आईई 9 ने अभी तक इसे लागू नहीं किया है, और आईई 10 के पास कोई शब्द नहीं है। तकनीकी साइटें जो नवीनतम तकनीक को दिखाती हैं (जैसे एचटीएमएल 5 में क्या संभव है) और किसी अन्य चीज जहां श्रोताओं के विशाल बहुमत को एक सहायक ब्राउज़र का उपयोग करने की गारंटी दी जाएगी या शुरुआती गोद लेने वाले को ठीक होना चाहिए। यदि नहीं, तो आप कुछ उपयोगकर्ताओं को अलगाव कर सकते हैं। केवल आप तय कर सकते हैं कि किस तरह से जाना है।

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

Another stackoverflow answer shows websocket support:

  • क्रोम 4.0 WebSockets का समर्थन करता है।
  • सफारी 5.0.2 उन्हें भी समर्थन करता है
  • फ़ायरफ़ॉक्स 4.0 वेबस्केट अक्षम करने के लिए समर्थन के साथ जहाजों को अक्षम करता है। : सक्षम फिर से यह समर्थन करने के लिए निष्क्रिय के साथ
  • ओपेरा 11 जहाजों को देखने के सक्षम करने के लिए इसे देख
  • IE9 उन्हें समर्थन नहीं करता है, फिर भी एक ऐड-ऑन प्रयोगात्मक समर्थन
+0

वेबसॉकेट एपीआई (जो प्रोटोकॉल से अलग मानक है और तकनीकी रूप से एचटीएमएल 5 का हिस्सा भी नहीं है) पीछे की असंगत तरीकों में बदलने की संभावना नहीं है। वेबसॉकेट प्रोटोकॉल सर्वर को लिखे जाने की अनुमति देता है जो प्रोटोकॉल के कई संस्करणों का समर्थन करता है और अधिकांश करते हैं। आईओएस अब वेबसाकेट्स को मूल रूप से समर्थन देता है। साथ ही, [वेब-सॉकेट-जेएस] (https://github.com/gimite/web-socket-js) एक फ़्लैश आधारित पॉलीफिल/फ़ॉलबैक है। इसका मतलब है कि ब्राउज़र समर्थन पहले से ही लगभग सार्वभौमिक है। – kanaka

2

WebSocket मानकों अनुप्रयोगों के लिए तैयार कर रहे हैं प्रदान करता है कि कम विलंबता, कम ओवरहेड संचार की आवश्यकता है। वे मौजूदा अनुप्रयोगों के लिए अच्छे हैं जो AJAX/धूमकेतु/लंबे मतदान के साथ संभव है की सीमा को दबा रहे हैं। लेकिन इससे भी महत्वपूर्ण बात यह है कि वेबसाकेट्स वेब अनुप्रयोगों की एक पूरी नई कक्षा को सक्षम कर देगा जो अभी तक मौजूद नहीं है।

आपके मामले में, ऐसा लगता है कि वेबसाकेट शायद अधिक हो जाएगा क्योंकि विलंबता आपके द्वारा बनाई जा रही चीज़ों में मुख्य मुद्दा नहीं है। आप निश्चित रूप से इसे वेबसाकेट के साथ कर सकते हैं, लेकिन मुझे संदेह है कि आपके मामले में बहुत कम लाभ के लिए अतिरिक्त काम होगा।

this answer देखें कि क्यों वेबस्केट सामान्य उपयोग के लिए पहले से तैयार हैं (web-socket-js और देशी आईओएस समर्थन के साथ इसका मतलब है कि वेबसाकेट जंगली में बहुत सारे ब्राउज़र पर समर्थित हैं)।

+0

इस परिदृश्य में वेबसाकेट्स का उपयोग करने में मुख्य समस्या यह है कि शायद थोड़ा सा प्रयास करने के लिए शायद कुछ प्रयास किए जाने की आवश्यकता होगी। इस परिदृश्य में शायद आईआईएस को वेबस्केट समर्थन जोड़ने की कोशिश करने लायक नहीं है (एएसपी.NET ऐप को आईआईएस पर चल रहा है) या एएसपी.NET ऐप से बात करने की अनुमति देने के लिए एक अतिरिक्त वेबसॉकेट सर्वर और आधारभूत संरचना जोड़ना संभव नहीं है। मैं पूरी तरह से सहमत हूं कि फॉलबैक समर्थन के कारण वेबसाकेट सामान्य उपयोग के लिए तैयार हैं। समस्या ** आपके स्वयं के होस्टिंग पर्यावरण ** में बैकएंड पर वेबसॉकेट समर्थन स्थापित कर रही है ** इस समय दर्द का थोड़ा सा दर्द है। – leggetter

3

मुझे लगता है कि एक्सएचआर और वेबसाकेट 2 अलग-अलग परिदृश्यों के लिए हैं और आपको अपने परिदृश्य को बेहतर ढंग से फिट करने के लिए उपयोग करना चाहिए।

एक्सएचआर में अनुरोध-प्रतिक्रिया जोड़ी है। प्रत्येक अनुरोध को प्रतिक्रिया के साथ जोड़ा जाता है। यह दूरस्थ प्रक्रिया कॉल के लिए अच्छा है, लेकिन अगर आप अनुरोध के बिना प्रतिक्रिया चाहते हैं तो अनावश्यक ओवरहेड बनाता है (यानी सर्वर पुश)।

वेबसॉकेट ऊपर की समस्या हल करता है। आप किसी भी प्रतिक्रिया की उम्मीद किए बिना एक अनुरोध भेज सकते हैं। सर्वर आपको अनुरोध के बिना प्रतिक्रिया के माध्यम से कुछ भी भेज सकता है।

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

संबंधित मुद्दे

 संबंधित मुद्दे