"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > डॉकरीकृत होने पर मेरा वेबसॉकेट सर्वर कनेक्ट होने में विफल क्यों होता है?

डॉकरीकृत होने पर मेरा वेबसॉकेट सर्वर कनेक्ट होने में विफल क्यों होता है?

2024-12-23 को प्रकाशित
ब्राउज़ करें:996

Why Does My WebSocket Server Fail to Connect When Dockerized?

वेबसॉकेट सर्वर को डॉकराइज़ करना

समस्या

डॉकर का उपयोग करके वेबसॉकेट सर्वर को कंटेनराइज़ करने का प्रयास करते समय एक डेवलपर को समस्याओं का सामना करना पड़ता है। सर्वर कोड "कनेक्टेड" के साथ एक नए कनेक्शन पर लिखता है और कंटेनर के बाहर अच्छी तरह से काम करता है, लेकिन जब डॉकर कंटेनर के अंदर रखा जाता है, तो क्लाइंट "कनेक्शन रीसेट" त्रुटि के कारण त्रुटि संदेश "रीड टीसीपी [::1] के साथ घबरा जाता है। :60328->[::1]:8000: पढ़ें: सहकर्मी द्वारा कनेक्शन रीसेट।" डेवलपर अनिश्चित है कि कंटेनर के भीतर सर्वर से वेबसॉकेट कनेक्शन स्थापित करने के लिए क्या परिवर्तन आवश्यक हैं।

समाधान

इस समस्या को हल करने के लिए, डेवलपर को सर्वर के सुनने के पते को संशोधित करने की आवश्यकता है . "लोकलहोस्ट:8000" का उपयोग करने के बजाय, जो सर्वर को कंटेनर के भीतर आईपी पते 127.0.0.1 पर सुनने के लिए सीमित करता है, उन्हें इसे ":8000" में बदलना चाहिए।

":8000" का उपयोग करके पता सुनें, सर्वर कंटेनर को निर्दिष्ट सभी आईपी पते पर सुनेगा। यह संशोधन सुनिश्चित करता है कि जब ट्रैफ़िक को उसके निर्दिष्ट आईपी पते पर कंटेनर में भेजा जाता है, तो कनेक्शन स्वीकार करने के लिए एक सुनने वाला सर्वर तैयार होगा।

डॉकर की भूमिका

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

इन iptables नियमों को देखने के लिए, डेवलपर निम्नलिखित कमांड का उपयोग कर सकता है:

iptables -n -L
iptables -t nat -n -L

सुनने के पते में उल्लिखित परिवर्तन करके और डॉकर के अग्रेषण विधि को समझकर, डेवलपर "कनेक्शन रीसेट" को हल करते हुए, डॉकर कंटेनर के भीतर सर्वर से वेबसॉकेट कनेक्शन सफलतापूर्वक स्थापित कर सकता है। "त्रुटि और क्लाइंट साइड पर "कनेक्टेड" प्रिंटिंग के अपेक्षित व्यवहार को सक्षम करना।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3