जहाँ तक मैं कह सकता हूं, यहां 2 मूल्य हैं जो यहां मायने रखते हैं: सर्वर प्रत्येक heartbeat interval
सेकंड क्लाइंट को दिल की धड़कन भेजता है; यदि कोई प्रतिक्रिया नहीं है, तो क्लाइंट सीधे जवाब देता है, सर्वर तय करता है कि ग्राहक मर चुका है। ग्राहक पिछले दिल की धड़कन के बाद heartbeat timeout
सेकंड के लिए सर्वर से दिल की धड़कन की प्रतीक्षा करता है (जो स्पष्ट रूप से heartbeat interval
से अधिक होना चाहिए)। यह heartbeat timeout
सेकंड में सर्वर से शब्द प्राप्त नहीं हुआ है, तो यह मान लिया गया है सर्वर मर चुका है (और अन्य विकल्पों आप निर्धारित किया है के आधार पर पुन: कनेक्ट डिस्कनेक्ट करने शुरू कर देंगे /।
डिफ़ॉल्ट मान heartbeat interval = 25s
और heartbeat timeout = 60s
कर रहे हैं। दोनों आइटम हैं । सर्वर पर सेट, heartbeat timeout
जोड़ने पर ग्राहक के लिए भेज दिया जाता है
एक भी ग्राहक के लिए heartbeat timeout
बदलने आसान है:
var socket = io.connect(url);
socket.heartbeatTimeout = 20000; // reconnect if not received heartbeat for 20 seconds
हालांकि सर्वर पर
, heartbeat interval
मूल्य हिस्सा प्रतीत हो रहा है किसी साझा ऑब्जेक्ट (प्रबंधक, जो आपको अपने var io = require("socket.io").listen(server)
कॉल से वापस मिलता है) का अर्थ है, जिसका अर्थ यह है कि इसे व्यक्तिगत सॉकेट के लिए आसानी से बदला नहीं जा सकता है।
मुझे यकीन है कि कुछ के साथ socket.io हैकिंग आप इसे ऐसा करने के लिए सक्षम होना चाहिए हूँ, लेकिन आप इस प्रक्रिया में अन्य सामान तोड़ सकता ...
दिल की धड़कन के समय के बारे में निश्चित नहीं है, लेकिन यदि आप सॉकेट.ओ-क्लाइंट का उपयोग कर रहे हैं तो कुछ उपयोगी विकल्प हैं जो आपकी मदद कर सकते हैं, जैसे 'कनेक्ट टाइमआउट' 'रिकनेक्शन देरी '' अधिकतम पुन: कनेक्शन प्रयास' – vinayr