2009-05-03 12 views
7

क्या वेब सर्वर को धूमकेतु के बिना वेब ब्राउज़र पर एक संदेश भेजने देना संभव है?धूमकेतु के बिना अजाक्स रिवर्स?

फेसबुक और Google जैसी हर प्रमुख वेब कंपनी इस उद्देश्य के लिए धूमकेतु का उपयोग करती है और यह प्रमुख ब्राउज़र के लिए टीसीपी कनेक्शन सक्षम होने पर गायब होने की प्रतीक्षा में एक बदसूरत हैक की तरह लग रहा है।

उत्तर

5

यह बताने के लिए वेब सर्वर धूमकेतु के बिना वेब ब्राउज़र को एक संदेश भेज सकता है?

हां, सिल्वरलाइट, फ्लेक्स, फ्लैश और जावा एप्लेट्स के माध्यम से यह संभव है।

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

टीसीपी कनेक्शन एक ला एचटीएमएल 5 वेब सॉकेट समस्या का समाधान नहीं करेगा। आप देखते हैं कि बहुत से लोग अपने कार्यस्थल, विश्वविद्यालय या स्कूल से Google और फेसबुक का उपयोग करते हैं और फ़ायरवॉल अक्सर गैर-मानक बंदरगाहों और गैर-HTTP ट्रैफ़िक को अवरुद्ध करते हैं। तो एक समाधान जो किसी वेब ब्राउज़र को संदेश भेजता है उसे HTTP पर काम करना पड़ता है और अक्सर HTTP की तरह दिखता है। यही कारण है कि Google और फेसबुक धूमकेतु का उपयोग करते हैं और ऐसा करना जारी रखेंगे अन्यथा वे अपने उपयोगकर्ताओं के एक बड़े प्रतिशत तक पहुंचने में सक्षम नहीं होंगे। वास्तव में, कुछ फ़ायरवॉल और रिवर्स प्रॉक्सी लंबे समय से चलने वाले HTTP कनेक्शन बंद कर देंगे और इसलिए अजाक्स मतदान कनेक्शन अक्सर फॉलबैक के रूप में उपयोग किया जाता है। यदि आप ऐसे सर्वर की तलाश में हैं जो रिवर्स अजाक्स के माध्यम से ब्राउज़र को संदेश भेजने में सक्षम है तो मैं StreamHub Reverse Ajax जैसे कुछ सुझा सकता हूं।

+1

देखें: http://stackoverflow.com/questions/1227266/how-do-i-open-a-connection-back-to-the-server-using-flex – DLauer

+0

और http://stackoverflow.com/ प्रश्न/1225147/कैसे करते हैं-ए-खुला-ए-टीसीपी-सॉकेट-से-Silverlight – DLauer

2

आपको ऐसा क्यों लगता है कि फेसबुक और Google ऐसा करेंगे यदि कोई और तरीका था?

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

server-sent events और web sockets को HTML5 पर जोड़ने की कुछ चर्चा हुई है, लेकिन यह बेहद प्रारंभिक है और शायद इसे मानक में नहीं लाएगा।

2

चूंकि "धूमकेतु" किसी भी चीज के लिए कृत्रिम शब्द है जो डेटा के धक्का को अनुकरण करने के लिए मौजूदा http प्रोटोकॉल का उपयोग करता है, मुझे डर है कि आप ऐसा कुछ भी नहीं कर सकते हैं।

एकमात्र समाधान वर्तमान प्रोटोकॉल का "वृद्धि" होगा या कुछ व्यापक रूप से उपयोग किए जाने वाले प्लगइन आधारित समाधान ... आप इसके लिए जावा का उपयोग कर सकते हैं। लेकिन इससे अन्य समस्याएं बढ़ जाएंगी क्योंकि मूल रूप से आपको उस ब्राउज़र पर आने वाले कनेक्शन की आवश्यकता होती है।

2

धूमकेतु को केवल एक लंबे मतदान वाले AJAX कॉल के रूप में कार्यान्वित किया जा सकता है, इसलिए यह अर्थशास्त्र का मामला बन जाता है। Here, for example, is a jquery plugin जो jQuery के AJAX कॉल के ऊपर Bayeux प्रोटोकॉल का उपयोग कर धूमकेतु लागू करता है।

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