Çok basit bir örneğim var. Bu soru, yığının kendiliğinden taşmasıyla daha önce birden çok kez sorulmuştur, ancak doğru cevabı bulamadım bu yüzden bu temel örnekle gidiyorum.socket.io birden çok kez yayar
Sunucu:
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 });
});
});
Müşteri:
<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>
ilk kez socket.emit ('sonucu', {: 'Dünya' merhaba}) testi beni butonuna tıkladığınızda ; bir kez yayılır. Ve konsolda bu baskılı alıyorum:
console.log('The data is '+data)
Ama ben bir kez daha tıkladığınızda bu üç kere basılmış olsun:
console.log('The data is '+data)
console.log('The data is '+data)
console.log('The data is '+data)
ben altı kez basılan olsun üçüncü kez tıkladığınızda:
Bunun gibi, çarpıyor ve gidiyor.
Bu problemin nasıl çözüleceğine dair bana bir fikir verebilir. Yardımınız büyük beğeni topluyor. Teşekkürler!
Çok teşekkürler dude.It hüner :-) yapar – sdg