Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js NodeJS聊天:存储用户名_Node.js_Chat - Fatal编程技术网

Node.js NodeJS聊天:存储用户名

Node.js NodeJS聊天:存储用户名,node.js,chat,Node.js,Chat,我正在与NodeJS建立聊天,但它不会将用户名存储在var users中: // chat sockets var io = require('socket.io').listen(3872, { log: false }); var users = []; io.sockets.on('connection', function (socket) { socket.on('requestUsername', function(username) { socket.us

我正在与NodeJS建立聊天,但它不会将用户名存储在var users中:

// chat sockets
var io = require('socket.io').listen(3872, { log: false });
var users = [];
io.sockets.on('connection', function (socket) {

    socket.on('requestUsername', function(username) {
        socket.username = escape(username.value);
        users.push({
            username: username.value
        });
        console.log(username.value + " joined the chat. "+ users.length +" chatters online now!");
        console.log(users);
    });

    socket.on('disconnect', function() {
    });
});
所以,当有人加入时,例如:Steve,var用户是:{username:'Steve'},但是当Simon加入时:{username:'Simon'},Steve现在从用户var中消失了?为什么?如何修复它?

修复:

// chat sockets
var io = require('socket.io').listen(3872, { log: false });
var users = [];
io.sockets.on('connection', function (socket) {

    socket.on('requestUsername', function(username) {
        socket.username = escape(username.value);
        users.push(username.value);
        console.log(username.value + " joined the chat. "+ users.length +" chatters online now!");
        console.log(users);
    });

    socket.on('disconnect', function() {
    });
});

我不知道为什么,但这是可行的?

您确定没有重新启动服务器?或者在用户断开连接时清理阵列?是的,我确实这样做了。但我找到了解决办法!