我在这里很新。我试图在这种情况下使用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)
,则所有套接字名称都会按预期显示。
为什么客户端没有收到任何答复(没有错误消息或任何警告)? :)
答案 0 :(得分:2)
有问题的一行:
socket.id=msg.id;
在Socket.io socket.id
中有一个预定义的值,不得更改。这导致了错误。