0

对许多人来说,这可能是一个简单的问题,但我试图找出 socketIO 如何处理变量的原因/逻辑。在下面的代码中,x 设置为 0,它每秒计数一次。现在,如果您连接了 1000 个客户端,那么每次连接时每个客户端都会从 0 开始获得一个新计数,并且不会影响其他所有连接的客户端?

另外,有没有办法向曾经连接的客户端而不是每个连接的客户端发出一个新号码?谢谢!

io.sockets.on('connection', function (socket) {
    x= 0;
    var socketSend = setInterval(function(){
        x = x+1;
        socket.emit('count', { number: x });
    }, 1000);

});
4

1 回答 1

1

socketSend仅在事件的回调内部可见,connection因此每次客户端连接时都会调用回调,并传递套接字对象,因此每个客户端都将0作为开始并开始计数。

于 2013-09-19T19:57:56.770 回答