2013-05-09 14 views
11

है क्या क्लाइंट पक्ष पर ऐसा कुछ है जो यह पता लगाने के लिए है कि socket.io websocket उपलब्ध नहीं है? की तर्ज पर कुछ:socket.io/node.js यह पता लगाने के लिए कि क्या सर्वर

  • सर्वर के अनुसार सामान्य
  • ग्राहकों कनेक्ट
  • संदेशों सर्वर और ग्राहक (रों) के बीच आगे पीछे भेजा जाता है शुरू होता है
  • सर्वर बंद हो जाता है (अब उपलब्ध नहीं)
  • जुड़ा ग्राहकों चेतावनी दी है कि सर्वर उपलब्ध नहीं है

मैंने कोशिश की क्लाइंट साइड पर 'त्रुटि' और 'connect_failed' विकल्प जोड़ने के लिए लेकिन बिना किसी किस्मत के, वे बिल्कुल ट्रिगर नहीं हुए। किसी से भी कोई विचार मैं इसे कैसे प्राप्त कर सकता हूं?

+3

'var sio = io.connect(); sio.socket.on ('त्रुटि', फ़ंक्शन (कारण) { console.error ('सॉकेट.आईओ कनेक्ट करने में असमर्थ, कारण); }); क्या आपने कोशिश की? –

+0

हां। मैंने कोशिश की - यह क्लाइंट साइड पर है? "Connect_failed" भी कोशिश की लेकिन कोई भाग्य नहीं। – Tamas

+0

Anh Tú का समाधान तब काम करता है जब क्लाइंट डाउन होने वाले सर्वर से कनेक्ट करने का प्रयास करता है।तो मूल रूप से सभी को संभवतः सभी संभावित परिदृश्यों को कवर करने के लिए दोनों स्क्रिप्ट की आवश्यकता होगी। –

उत्तर

9

disconnect ईवेंट वह है जिसे आप सुनना चाहते हैं।

var socket = io.connect(); 

socket.on('connect', function() { 
    alert('Socket is connected.'); 
}); 

socket.on('disconnect', function() { 
    alert('Socket is disconnected.'); 
}); 
+0

धन्यवाद मैथ्यू! – Tamas

+0

मैं सलाह देता हूं कि 'कनेक्ट_error' ईवेंट [cbautista द्वारा सुझाए गए] [http://stackoverflow.com/questions/16454005/socket-io-node-js-detecting-if-server-is-down#31599873) को भी सुनना है। ये दो घटनाएं उपयोगी हैं, लेकिन यदि प्रारंभिक कनेक्शन प्रयास * विफल रहता है तो वे कुछ भी प्रदर्शित नहीं करेंगे। – joeytwiddle

8

आप पता लगाने के लिए कि ग्राहक सर्वर से कनेक्ट करने, तो connect_error उपयोग करने का प्रयास नहीं कर पाया था सक्षम होने के लिए चाहते हैं। यह socket.io-1.3.5.js के साथ मेरे लिए काम करता है। मैंने इसे https://stackoverflow.com/a/28893421/2262092 में पाया। मेरे विकास के दौरान

var socket = io.connect('http://<ip>:<port>', { 
    reconnection: false 
}); 
socket.on('connect_error', function() { 
    console.log('Failed to connect to server'); 
}); 
0

हिट इस बग और पाया है मेरी घटना कॉल, हर बार मैं सर्वर रीसेट अप दोहरीकरण रहे थे के रूप में मेरे सॉकेट पुन: कनेक्ट:

यहाँ मेरी कोड स्निपेट है। मेरे लिए काम करने वाले समाधान को बदलता है, जो कनेक्शन को डुप्लिकेट नहीं कर रहा है यह

var सॉकेट = io.connect();

socket.on ('कनेक्ट', function() {

console.log ('उपयोगकर्ता जुड़ा!');

});

socket.on ('संदेश', समारोह (संदेश) {

console.log (संदेश); ​​

});

(KasperTidemann द्वारा https://github.com/socketio/socket.io/issues/430 पर इस मिला)

बाहर है, यह क्योंकि मैं 'कनेक्ट' समारोह के अंदर 'संदेश' श्रोता डाला गया था। श्रोता के बाहर इसे बैठकर, इस समस्या को हल करता है।

कैसर टिडेमैन को चीयर्स, आप जिस चीज हैं।

आगे बढ़ना !!

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