मैं एक विश्वसनीय वेबसॉकेट कनेक्शन वसूली तंत्र को लागू करने के लिए चारों ओर देख रहा हूं।विश्वसनीय वेबसॉकेट कनेक्शन राज्य का पता लगाने
कुछ जांच के बाद, मैं अगर मैं पूरे पौंग एक सीमित समय में प्राप्त जाँच पाया है कि एक ही रास्ता सर्वर (पिंग/पोंग) को hearbeats भेज रहा है, और।
इस प्रकार, या तो करता है, तो कनेक्शन वास्तव में बंद है, या यह बहुत धीमी गति से यह पर विचार किया जाएगा है काट दिया है, तो एक प्रतीक्षा समय समाप्ति पौंग, और कोड WebSocket.close()
फोन करना चाहिए।
दिन के अंत में, मैं वेबसाकेट का उपयोग कर कनेक्शन-पुन: कनेक्शन वर्कफ़्लो को सत्यापित करने के लिए यह प्रश्न पूछ रहा हूं, और जांचें कि मुझे कुछ याद आ रहा है या नहीं।
यही है, मेरा प्रश्न है, क्या यह वेबसाकेट रीकनेक्शन तंत्र को लागू करने के लिए सही और विश्वसनीय वर्कफ़्लो है?
हां, आप सही हैं (और आपकी "पुष्टि" के लिए धन्यवाद)। बीटीडब्लू, मोबाइल उपयोग का मामला है, जहां प्रत्येक 20 सेकंड (उदाहरण के लिए) पर पिंग भेजना बैटरी पर प्रभाव डालता है। मेरे मामले में, चूंकि मैं उपयोगकर्ता इनपुट के लिए वेबस्केट का उपयोग नहीं कर रहा हूं, लेकिन सर्वर के लिए धक्का देता है, मैं उपयोगकर्ता को नोटिस करना चाहता हूं कि कनेक्शन में जल्द से जल्द समस्याएं हैं। –
आप एक टाइमस्टैम्प के साथ एक पिंग भेजकर और पोंग में सर्वर को गूंजकर नेटवर्क विलंबता का पता लगा सकते हैं। लेकिन अगर संचार काटा जाता है (यानी: उचित टीसीपी समाप्ति के बिना) यह कहना मुश्किल है कि जब तक आप कुछ भेजने की कोशिश नहीं करते हैं तब तक कटौती की जाती है: http://blog.stephencleary.com/2009/05/detection-of-half-open -dropped.html – vtortola
@vtrola यह एक बहुत ही रोचक लेख है (आप इसे संदर्भ के रूप में अपने उत्तर में क्यों नहीं जोड़ते हैं?)। बीटीडब्ल्यू, मुझे यकीन नहीं है कि अगर मैं ड्रॉप किए गए कनेक्शन का पता लगाने के लिए सही तरीके * के पहले समाधान को समझता हूं। मैं समझता हूं कि यह एक खाली संदेश (एक रखरखाव संदेश) भेजने के बारे में है, और सीमित समय की प्रतीक्षा करें, और यदि कुछ समय में कोई प्रतिक्रिया प्राप्त नहीं होती है, तो कनेक्शन खो जाना माना जाता है। –