0

多くの人にとって、これは簡単な質問かもしれませんが、socketIO が変数を処理する方法に関する理由/論理を理解しようとしています。次のコードでは、x が 0 に設定され、1 秒ごとにカウントアップします。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 に答える