我刚开始拾取socket.io。我试图在angular.js中使用它,一切正常。然而,它一直返回多次为什么socket.io为事件返回多次
我controller.js
socketio.emit('GameOver',$scope.currentPlayer.Name);
socketio.on('GameOverEmit',function(data){
if(data === $rootScope.user.user_name){
var result = {
opponent : rdyplayers.user_name,
result : "won"
};
// keep getting multiple result
console.log(result);
}else{
var result = {
opponent : rdyplayers.user_name,
result : "lose"
};
// keep getting multiple result
console.log(result);
}
});
在我server.js
io.sockets.on('connection', function (client) {
client.user_name = user.user_name;
//Useful to know when someone connects
console.log('\t socket.io:: player ' + client.user_name + ' connected');
// playerturn
client.on('PlayerTurn',function(data){
io.emit('PlayerTurnEmit',data);
});
// game over
client.on('GameOver',function(data){
io.emit('GameOverEmit',data);
});
// button disabled
client.on('PlayerButtonDisabled',function(data){
io.emit('PlayerButtonDisabledEmit',data);
});
//When this client disconnects
client.on('disconnect', function() {
//Useful to know when someone disconnects
console.log('\t socket.io:: client disconnected ' + client.user_name);
io.emit("disconnected",client.user_name);
}); //client.on disconnect
}); //io.sockets.on connection
我使用socket.io以正确的方式?为了将数据广播给每个人,我只需将数据传递到emit
,并通过使用on
将数据广播到服务器,并将数据传递回前端?
非常感谢,这也解决了我的问题。 –
@ Love-Kesh很高兴它有帮助!人民币,以upvote的问题或答案! –
@JohnLim你真棒!从过去两天开始研究这个问题。尝试了很多东西。最后这个工作。 – srbhbarot