Node.js Socket.io,socket.emit不起作用

时间:2013-02-04 16:02:50

标签: javascript node.js socket.io

我在这里很新。我试图在这种情况下使用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);
}) ;    

当我在node.js控制台上发送newUser事件时,响应中不会显示任何消息。如果我在for循环中写sys.puts("socket name:"+ myVar),则所有套接字名称都会按预期显示。

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

1 个答案:

答案 0 :(得分:2)

有问题的一行:

socket.id=msg.id;

在Socket.io socket.id中有一个预定义的值,不得更改。这导致了错误。