node.js& socket.io使用客户端特定的变量

时间:2011-02-08 02:39:21

标签: node.js socket.io

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');
  });  
});

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

感谢。

2 个答案:

答案 0 :(得分:2)

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

如果您解释了想要使用player的内容,可能会有更明确的答案。

答案 1 :(得分: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”指的是当前套接字