2011-08-25 16 views
5

मेरे पास एक socket.io क्लाइंट है जो node.js सर्वर से जुड़ा हुआ है। अगर मैं कमांड लाइन पर node.js को मारता हूं, तो क्लाइंट तुरंत जमा हो जाता है (यानी, संचार बंद हो जाता है), लेकिन "डिस्कनेक्ट" ईवेंट से पहले ~ 20 सेकंड की देरी हो जाती है। डिजाइन द्वारा यह व्यवहार है? डिस्कनेक्ट घटना को फायर करने में देरी को कम करने के लिए कोई कॉन्फ़िगरेशन विकल्प है?सॉकेट.ओ "डिस्कनेक्ट" ईवेंट को फायर करने में देरी?

ऐसा प्रतीत होता है कि यह व्यवहार socket.io के अपेक्षाकृत हाल के (पिछले 6 महीने) अद्यतन में बदल गया है। सॉकेट.ओओ में रीकनेक्ट कार्यक्षमता का निर्माण करने से पहले, मैंने "डिस्कनेक्ट" इवेंट हैंडलर का उपयोग करके अपना खुद का पुन: कनेक्ट तर्क लागू किया था और उस समय सर्वर संचार बंद होने पर "डिस्कनेक्ट" ईवेंट लगभग तुरंत निकाल दिया गया था।

उत्तर

6

हां। close timeout

+1

यह प्रश्न के उत्तर भी नहीं है, आप इसे कैसे स्वीकार कर सकते हैं? या न तो एक स्पष्टीकरण दें कि इस मुद्दे को कितना करीब समय लगता है! – Iamisti

2

मुझे लगता है कि यह एक डिजाइन पैटर्न की संभावना है। ग्राहक मान सकता है कि सर्वर 'अस्थायी रूप से' पहुंच योग्य नहीं है (नेटवर्क ट्रैफिक इत्यादि) और अनिवार्य रूप से पहुंचने की कोशिश कर रहा है ... क्लाइंट टाइमआउट में आने तक

मैं डिस्कनेक्ट (socket.disconnect()) भेजता हूं सीधे क्लाइंट से सर्वर पर, और मुझे यह समस्या नहीं मिलती है।

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