/ / सॉकेट का उपयोग cors.io के अंदर क्यों किया जाता है? - सॉकेट.आईओ, कोर्स

Socket.io के अंदर cors का उपयोग क्यों किया जाता है? - socket.io, cors

ऐसा लगता है कि जब सॉकेटियो चैट एप्लिकेशन का उपयोग करने की बात आती है तो कॉर्स मिडलवेयर एक शर्त है।
लेकिन ईमानदारी से, मैं इस कारण को नहीं समझ सकता कि हम कॉर्स का उपयोग क्यों करते हैं।

const io = require("socket.io")(server)

मेरा सर्वर लोकलहोस्ट पर चल रहा है: 3000, और वह io मेरे सर्वर पर निर्भर है। इसलिए दोनों के डोमेन स्थानीयहोस्ट के साथ समान हैं: 3000। लेकिन कोर की आवश्यकता क्यों है? कुछ स्पष्टीकरण की सराहना की जा सकती है।

उत्तर:

उत्तर № 1 के लिए 1

यदि आपका socket.io सर्वर वेब सर्वर के समान होस्ट और पोर्ट है, जिसमें वेब पेज शामिल है, तो आपको कोर की बिल्कुल भी आवश्यकता नहीं है।

जब आपको http बनाने की आवश्यकता होती है, तो Cors की आवश्यकता होती हैएक अलग डोमेन या पोर्ट के लिए अनुरोध। इसके अलावा, यदि आप socket.io को केवल WebSocket ट्रांसपोर्ट का उपयोग करने के लिए सीमित करते हैं और ऐसा नहीं करते हैं तो यह थोड़ी प्रारंभिक दिनचर्या है जो http पोलिंग के साथ शुरू होती है, तो आपको क्रॉस ओरिजिनल सॉकेट करने के लिए भी CORS की आवश्यकता नहीं है

तो, संक्षेप करने के लिए, सॉकेट।io को केवल तभी कोर की जरूरत होती है जब आपका सॉकेट.यो सर्वर वेब पेज की तुलना में एक अलग होस्ट या पोर्ट होता है जिससे कनेक्शन बनाया जा रहा है और आप कोर्स से बच सकते हैं तब भी यदि आप http पोलिंग ट्रांसपोर्ट को बंद कर देते हैं ताकि socket.io केवल एक का उपयोग करता है परिवहन के रूप में webSocket।


उत्तर № 2 के लिए 1

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