0
socket.on('connection', function(client){ 
    var clientid = client.sessionId;
  console.log('Connection from '+clientid);

  var player = 0;
  client.on('message',function(data){ 
    HandleClientData(data,clientid);
  });
  client.on('disconnect',function(){
    console.log('Server has disconnected');
  });  
});

变量“玩家”是客户端独有的吗?如何从另一个函数获取/设置此变量?

谢谢。

4

2 回答 2

2

它是建立套接字连接时运行的匿名函数的本地变量。如果您想从另一个函数中读取它,请将其移至全局范围或将其作为参数之一传递给该函数。如果要从另一个函数设置它,请将其移动到全局范围或将其传递给该函数并在该函数返回时读取其值。

如果你解释你想用什么player,可能会有一个更清晰的答案。

于 2011-02-08T02:45:06.897 回答
2

那这个呢:

socket.on('connection', function(client){
client.player = 0;
console.log('Connection from '+client.clientid);

client.on('message',function(data){
    someOtherFunctions(this.player); 
    HandleClientData(data,this.clientid);
});
client.on('disconnect',function(){
  console.log(this.clientid+' has been disconnected');
  });  
});

您可以为连接的套接字单独定义任何数据,并在具有“this”范围的其他回调中使用它们。“this”指的是当前套接字

于 2011-11-21T11:24:01.977 回答