मेरे पास एक वेब एप्लिकेशन है जहां उपयोगकर्ता को लगातार कनेक्ट होने की आवश्यकता है। डिफ़ॉल्ट रूप से, socket.io 60 सेकंड के बाद कनेक्शन को डिस्कनेक्ट कर देगा। मेरे पास 'पुन: कनेक्शन' चालू है, इसलिए यह हर मिनट कनेक्शन को बंद करना और फिर से खोलना अनिवार्य है। इससे मेरे कनेक्टेड क्लाइंट को फ़ीड्स/सूचनाओं के साथ समस्याएं हो सकती हैं। क्या यह टाइमआउट सेट करने के लिए सुरक्षित होगा, कहने के लिए, 10 मिनट, या संभवतः उच्च? क्या ऐसा कोई कारण है कि अभी यह इतना कम है?क्या यह socket.io पर उच्च बंद टाइमआउट सेट करना सुरक्षित है?
उत्तर
मुझे विश्वास नहीं है कि 60 सेकंड के बाद आपकी सॉकेट डिस्कनेक्ट होनी चाहिए। मैं जांच करूंगा कि वास्तव में ऐसा क्यों हो रहा है। सही ढंग से हैंडशेकिंग के बाद सॉकेट को दिल की धड़कन करना चाहिए और अनिश्चित काल तक खुला रहना चाहिए (नेटवर्क नियंत्रण को अपने नियंत्रण से बाहर करना) जब तक क्लाइंट या सर्वर कनेक्शन बंद न हो जाए, यह निश्चित रूप से मेरा अनुभव है।
तथ्य यह है कि आपका कनेक्शन वास्तव में ध्वनियों को बंद कर रहा है जैसे कि यह सही ढंग से हैंडशेकिंग नहीं हो सकता है, या दिल की धड़कन प्राप्त नहीं हो रही हैं।
मेरा अनुमान है कि आप 'close timeout'
कॉन्फ़िगरेशन को गलत व्याख्या कर सकते हैं। यह 60 सेकंड के बाद कनेक्शन बंद होने का कारण नहीं बनता है। (यदि ग्राहक लगातार पुनः कनेक्ट होते हैं तो दिल की धड़कन व्यर्थ होगी)।
यदि कोई ग्राहक डिस्कनेक्ट करता है, तो close timeout
उस कनेक्शन से जुड़े संसाधनों को जारी करने से पहले सर्वर प्रतीक्षा करेगा। अनिवार्य रूप से, यह ग्राहकों को उनके बारे में भूल जाने से पहले पुनः कनेक्ट करने का प्रयास करने के लिए अंतःस्थापित कनेक्टिविटी समस्याओं के साथ अनुमति देता है। close timeout
से दस मिनट तक सेट करना शायद एक बुरा विचार है क्योंकि यह सर्वर संसाधनों को जोड़ देगा।
यदि आपके ग्राहक वास्तव में हर 60 सेकंड डिस्कनेक्ट कर रहे हैं, तो, जैसे सैमज ने कहा, कुछ और गलत है।
आप इसे पहले से ही समझ चुके होंगे, लेकिन आपकी सॉकेट 60 सेकंड के बाद डिस्कनेक्ट हो सकती है क्योंकि आप सर्वर पर दिल की धड़कन ("2 ::") नहीं भेज रहे हैं।
यहां कुछ पायथन कोड है जो websocket client module के साथ काम करता है।
# on_message handles messages from the server
def on_message(ws, message):
if message[:3] == '2::':
ws.send('2::')
- 1. jQuery के टाइमआउट पर टाइमआउट सेट करना
- 2. क्या ट्विस्ट में सॉकेट पर टाइमआउट सेट करना संभव है?
- 3. सॉकेट टाइमआउट सेट करना?
- 4. socket.io पर सॉकेट सर्वर की ओर बंद करना?
- 5. क्या यह एक ही यूआरएल पर रीडायरेक्ट करना सुरक्षित है?
- 6. क्या node.js सर्वर पर socket.io क्लाइंट चल रहा है (सर्वर-साइड) सेट करना संभव है?
- 7. क्या यह परिदृश्य सुरक्षित है?
- 8. TempData: क्या यह सुरक्षित है?
- 9. socket.io
- 10. Enum.TryParse - क्या यह धागा सुरक्षित है?
- 11. Socket.io CORS शीर्षलेख सेट नहीं करता है
- 12. Dnspython: क्वेरी टाइमआउट/आजीवन सेट करना
- 13. क्या यह जावा क्लास धागा सुरक्षित है?
- 14. EJBContext getContextData का उपयोग करना - क्या यह सुरक्षित है?
- 15. क्या यह एक एसएलएल कंटेनर असाइन करना सुरक्षित है?
- 16. एक विश्वसनीय API का उपयोग करना - क्या यह सुरक्षित है?
- 17. क्या यह $ _SERVER ['REMOTE_ADDR'] पर भरोसा सुरक्षित है?
- 18. कैसंद्रा/हेक्टर टाइमआउट = क्या करना है?
- 19. क्या यह प्रति उपयोगकर्ता आधार पर सक्रिय संसाधन HTTP प्रमाणीकरण सेट करने के लिए सुरक्षित है?
- 20. क्या सी ++ std :: सेट थ्रेड-सुरक्षित है?
- 21. सॉकेट क्यों है। टाइमआउट को अनंत पर सेट होने पर आधा बंद कनेक्शन पर समय-समय पर रिसीव करें?
- 22. एक int [] सरणी पर समवर्ती पढ़ने का उपयोग: क्या यह सुरक्षित है? क्या यह तेज़ है?
- 23. क्या यह कार्यवाही विधि को TaskCompletionSource.Task पर कॉल करना सुरक्षित है (जिसका यह है। .SetResult कहा जाता है)?
- 24. क्या यह लॉगिन सत्र सुरक्षित है?
- 25. सॉकेट के लिए सेट टाइमआउट
- 26. क्या यह कोड थ्रेड-सुरक्षित है?
- 27. क्या यह मैक्रो इनोकेशन घोंसला सुरक्षित है?
- 28. क्या यह एचटीएमएल हेल्पर थ्रेड सुरक्षित है?
- 29. यूडीपी सॉकेट सेट टाइमआउट
- 30. क्या यह लॉक उपयोग थ्रेड सुरक्षित है?