2010-04-21 12 views
128

मैंने WebSockets पढ़ा है और मुझे आश्चर्य है कि ब्राउजर बस छोटे टीसीपी कनेक्शन क्यों नहीं खोल सकता और किसी अन्य डेस्कटॉप एप्लिकेशन की तरह सर्वर के साथ संवाद कर सकता था। और websockets के माध्यम से यह संचार संभव क्यों है?वेबसाकेट और शुद्ध टीसीपी के बीच मौलिक अंतर क्या है?

+0

क्योंकि वेबसाकेट और ब्राउज़र HTTP के माध्यम से एप्लिकेशन स्तर पर संचार करते हैं और टीसीपी के माध्यम से परिवहन परत पर नहीं? – anonymous

+5

लेकिन समस्या क्या है? उन्हें टीसीपी का उपयोग करने दें। – xap4o

+2

अधिक जानकारी http://stackoverflow.com/questions/8051516/how-to-establish-a-tcp-socket-connection-from-a-web-browser-client-side –

उत्तर

204

जब आप इंट्रानेट सीमा के भीतर काम कर रहे हों तो टीसीपी सॉकेट के माध्यम से संवाद करना आसान है, क्योंकि आपके पास उस नेटवर्क पर मशीनों पर नियंत्रण हो सकता है और टीसीपी कनेक्शन बनाने के लिए उपयुक्त पोर्ट खोल सकते हैं।

इंटरनेट पर, आप दूसरे छोर पर किसी और के सर्वर से संचार कर रहे हैं। वे बेहद कनेक्शन के लिए पुरानी सॉकेट खोलने की संभावना नहीं है। आम तौर पर उनके पास केवल कुछ मानक होंगे जैसे HTTP के लिए पोर्ट 80 या HTTPS के लिए 443। तो, सर्वर के साथ संवाद करने के लिए आप उन बंदरगाहों में से किसी एक का उपयोग करके कनेक्ट करने के लिए बाध्य हैं।

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

+1

आसान स्पष्टीकरण के लिए धन्यवाद, एश। – xap4o

+0

तो मूल रूप से वेबस्केट टीसीपी के लिए एक आवरण है, इस अर्थ में कि यूडीपी बस आईपी के लिए एक रैपर है? – Pacerier

+3

@Pacerier: एक वेबसाकेट को कुछ प्रकार के परिवहन प्रोटोकॉल को संचालित करने की आवश्यकता होती है, लेकिन उस परिवहन परत को टीसीपी नहीं होना चाहिए (हालांकि यह लगभग हमेशा अभ्यास में टीसीपी होने जा रहा है)। आप वेबसाकेट्स को टीसीपी के चारों ओर एक प्रकार का रैपर के रूप में सोच सकते हैं, लेकिन मुझे विश्वास नहीं है कि दोनों के बीच कोई भी अनुवांशिक लिंक है। – Ash

20

वेब ब्राउज़र एप्लिकेशन परत पर काम करते हैं, जबकि टीसीपी ट्रांसपोर्ट लेयर पर काम करता है। वेब एप्लिकेशन डेवलपर के रूप में, ट्रांसपोर्ट लेयर पर कच्चे बाइट्स के बजाय एप्लिकेशन लेयर के माध्यम से तार पर संदेश भेजना आसान है।

अंतर्निहित वेबसाकेट टीसीपी है, यह सादगी के लिए दूर है।

-1

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

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