हा प्रश्न वारंवार का विचारला जातो हे मला समजतं. WebSocket उघडं राहतं, तुम्ही कोण आहात हे लक्षात ठेवतं, आणि सर्व्हरला तुम्ही पुन्हा पुन्हा विचारल्याशिवाय डेटा पाठवू देतं. मग एकच सतत चालू राहणारी पाईप उघडून काम भागत असताना आपण अजूनही एका पान लोडसाठी शेकडो वेगवेगळे HTTP रिक्वेस्ट का पाठवतो? खरं सांगायचं तर हा प्रश्न लोक समजतात त्यापेक्षा जास्त हुशार आहे — आणि उत्तर “कारण HTTP जास्त चांगलं आहे” असं नाही. ते यापेक्षा बरंच गुंतागुंतीचं आहे.
“रिअल-टाइम गोष्टींसाठी वेबसॉकेट्स वापरा” हे मी सतत ऐकत होतो, पण प्रत्यक्षात वायरवर काय घडतं हे कोणीच नीट सांगत नव्हतं. म्हणून मी RFC वाचलं, काही सर्व्हर्स तपासले आणि जे समजलं ते लिहून काढायचं ठरवलं — यात मला सर्वात जास्त गोंधळात टाकणारा भाग म्हणजे: वेबसॉकेट हा स्वतःचा एक स्वतंत्र प्रोटोकॉल आहे की HTTP वर केलेली एक चलाख युक्ती?
तर वेबसॉकेट म्हणजे नक्की काय? वेबसॉकेट म्हणजे ब्राउझर (किंवा कोणताही क्लायंट) आणि सर्व्हर यांच्यातील, एकाच TCP कनेक्शनवरून उघडलेला, टिकून राहणारा, फुल-डुप्लेक्स संवाद-मार्ग आहे [1]. फुल-डुप्लेक्स म्हणजे दोन्ही बाजू कधीही, हवं तेव्हा संदेश पाठवू शकतात — फक्त विनंतीला उत्तर म्हणून नाही. हाच भाग वेबबद्दलची आपली नेहमीची मानसिक रचना मोडतो.