使用Socket IO的节点JS服务器阵列

时间:2014-04-14 10:46:59

标签: javascript arrays node.js socket.io

从不同的Socket IO客户端,我将一个包含两个项目的数组发送回服务器。这两个项目是得分,客户端套接字ID如下所示:

    [10,'_D4A1eiGJRg_ZxHRyf6A']

在服务器端,在连接套接字客户端时,我根据套接字ID创建了一个我添加用户的对象:例如:

    users = {
        '_D4A1eiGJRg_ZxHRyf6A' : user {
         score : 0,
         finished : false,
         winner : false
        },
        'xnSJPYEM_aEo08T4yf5_' : user {
         score : 0,
         finished : false,
         winner : false
        },
    }

当我发送上述数组时,我正在尝试更新此对象。这是我用来尝试实现此目的的服务器端代码:

    socket.on('finish', function(data) {
        users[data[1]]['score'] = data[0];
        users[data[1]]['finished'] = true;
    });

相反,正在发生的事情是用户对象的所有属性都在使用数组中发送的数据进行更新,而不仅仅是具有匹配套接字ID的数据。

谁能告诉我我做错了什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

如果你可以像这样做,并使你的对象成为这样,那么它会更好:

users = {
    '_D4A1eiGJRg_ZxHRyf6A' : {
     score : 0,
     finished : false,
     winner : false
    },
    'xnSJPYEM_aEo08T4yf5_' : {
     score : 0,
     finished : false,
     winner : false
    },
}

服务器端:

socket.on('finish', function(data) {
users[data[1]].score = data[0];
users[data[1]].finished = true;
});