2013-02-04 122 views
2

我在这里很新。我想在这种情况下使用该功能的发射没有运气:(Node.js Socket.io,socket.emit不起作用

服务器端:

socket.on('newUser', function(msg){ 
    ConnectedSockets ++; 
    var player; 
    player = new Player(); 

    player.CreatePlayer(msg.id, msg.name, msg.status); 
     socket.id=msg.id; 
     socket.name=msg.name; 
     sockets[socket.id] = socket; 

     for(i in sockets){ 
      var myVar=sockets[i].name; 
      socket.emit('listing',{name: myVar}); 
     } 
}) ; 

客户端:

socket.on('listing', function(msg){ 
    $('#list').val($('#list').val() + "\n"+msg.name); 
}) ;  

当我在节点发送NEWUSER事件。如果我在for循环中写入sys.puts("socket name:"+ myVar),则所有插座名称都按我的预期显示。

为什么客户端没有收到任何答案(无错误消息或任何类型的警告)? :)

回答

2

问题的行:

socket.id=msg.id; 

在Socket.io socket.id具有预定义的值,并且必须不被改变。这导致了错误。