मुझे एक बहुत ही बुनियादी उदाहरण मिला है। इस सवाल को पहले कई बार स्टैक ओवरफ़्लो में पूछा गया था लेकिन मुझे सही जवाब नहीं मिला, इसलिए मैं इस मूल उदाहरण के साथ जा रहा हूं।socket.io कई बार उत्सर्जित करता है
सर्वर:
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
server.listen(3000);
app.get('/', function (req, res) {
res.sendfile(__dirname + '/index.html');
});
io.on('connection', function (socket) {
socket.on('chat', function (data) {
var op = false;
if(data.id == '1234'){
op = 'yes';
}else{
op = 'no';
}
socket.emit('result', { hello: op });
});
});
ग्राहक:
<html>
<body>
<button onclick="check()">Test Me :-)</button>
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://localhost:3000');
var check = function(){
var data = { id : '234'};
socket.emit('chat', data);
socket.on('result', function(data){
console.log('The data is '+data)
})
}
</script>
</body>
</html>
जब मैं परीक्षण मुझे बटन पहली बार के लिए socket.emit ('परिणाम', {: 'दुनिया' हैलो}) पर क्लिक करें ; यह एक बार उत्सर्जित होता है। और कंसोल में मैं इस मुद्रित हो रही है:
console.log('The data is '+data)
लेकिन जब मैं एक बार फिर से क्लिक कर मैं इस तीन बार मुद्रित हो:
console.log('The data is '+data)
console.log('The data is '+data)
console.log('The data is '+data)
मैं तीसरी बार छह बार मुद्रित करने के लिए क्लिक करें:
console.log('The data is '+data)
console.log('The data is '+data)
console.log('The data is '+data)
console.log('The data is '+data)
console.log('The data is '+data)
console.log('The data is '+data)
इस तरह यह गुणा और चल रहा है।
क्या कोई मुझे इस समस्या को हल करने के बारे में अंतर्दृष्टि दे सकता है। आपकी मदद की बहुत सराहना की जाती है। धन्यवाद!
धन्यवाद बहुत बहुत dude.It करता चाल :-) – sdg