के साथ एक से अधिक बार दोहरा रहा है मैंने सफल कॉमेंट पर socket.emit ईवेंट सेट किया है। लेकिन समस्या तब होती है जब मैं sockets.on घटना को बांधता हूं। इसे कई बार निकाल दिया जा रहा है।सॉकेट.ऑन इवेंट प्रत्येक प्रतिक्रिया
$(document).on('click', '#comment_button', function() {
$.ajax({
// upon success
success: function (response) {
if (response) {
socket.emit('postcomment');
socket.on('refresh', function() {
console.log('refresh');
//This console.log('refresh') is coming multiple times. I mean its occurance increases with every successful ajax response.
});
}
});
});
यहाँ मेरी server.js
socket.on('postcomment', function() {
io.sockets.emit("refresh");
});
मैं सत्यापित किया है कि मेरी server.js में socket.on
समारोह केवल एक बार के लिए कहा जाता है। मुझे यकीन नहीं है कि AJAX में socket.on('refresh', function() {}
के साथ समस्या क्या है। कोई भी मदद महान होगी।
पीएस सॉकेट कनेक्शन पहले ही बना दिया गया है। उसमें कोई समस्या नहीं है।
संपादित करें: मैंने गलती को सुधार दिया। अगर कोई भविष्य में इसे पढ़ रहा है। जेसन और निरंजन ने उल्लेख किया,
socket.on{}
घटना सफल प्रतिक्रिया पर खुद को बाध्यकारी थी। सरल होने के लिए: हर बार क्लिक हैंडलर कहलाता है, यह अतिरिक्त घटना श्रोताओं को सॉकेट में जोड़ता है। पिछले क्लिक पर संलग्न श्रोताओं को सक्रिय बना रहता है।
तो मैं
$(document).on('click', '#comment_button', function() {
$.ajax({
// upon success
success: function (response) {
if (response) {
socket.emit('postcomment');
}
});
});
socket.on('refresh', function() {
console.log('refresh');
});
मुबारक कोडिंग पिछले कोड में निम्न परिवर्तन wrt बनाया है।
क्या आप फ़ंक्शन की कई प्रतियों को 'socket.on'' refresh' ईवेंट 'पर बाध्य कर रहे हैं? – Jason
जब आप AJAX फ़ंक्शन को कॉल कर रहे हैं ?? –
कोई भी कंसोल.लॉग ('रीफ्रेश') नहीं; –